-
现在有个需求,现有列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
-
要求你把列表里的每个值加1,或者算2的平方
生成一个新列表,遍历原列表 a , 把每个值加 1 后存在新列表里,最后再把新列表替换掉原来的列表
为什么说二呢? 因为生成了新列表,浪费了内存空间。
def one():
最不好的写法,但比较容易理解,生成新列表占用内存
:return: None
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = []
for i in a:
b.append(i+1)
print(b)
为标准的写法,不生存新列表,而是通过列表索引改列表中的内容
def two():
标准的写法,利用列表索引更改值
:return: None
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i,k in enumerate(a):
a[i]=k+1
print(a)
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
使用匿名函数lambad对列表数据进行循环处理,代码只有简单的三行
def three():
使用 lambda 匿名函数 对列表中的数据进行处理
:return: None
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = map(lambda x:x+1,a)
print(a)
这里是引用这边返回结果是内存地址,如果想将里面内容取出,需要一个循环
for i in a:print(i)
或者在map() 前面加个 list() 转化成列表输出
列表解析式 也叫 列表生成式、列表推导式
同样只有简单三行代码,比较简洁,易于理解和观看,算是一个比较常用的方法
def four():
装逼利器,使用列表解析式、生成式 对列表中的数据进行处理
:return: None
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = [i+1 for i in a]
print(a)
在写这几种方法的时候,我想到比较这几种写法的处理速度,于是我尝试计算了一下代码运行时间
但处理速度过快,显示不出这么低的数值,只好用了一下 time工具包里的 sleep 延迟了一下代码运行
但结果都差不多,应该是我处理的数据过于简单,比较不出来
"""现在有个需求,现有列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
要求你把列表里的每个值加1
import time
def time_count(funx):
def inner(*args, **kwargs):
start = time.time()
time.sleep(1)
ret = funx(*args, **kwargs)
end = time.time()
print("程序运行时间为(越小越好):", end - start)
return ret
return inner
@time_count
def mode_one():
最不好的写法,但比较容易理解,生成新列表占用内存
:return: None
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
newnums = []
for i in nums:
newnums.append(i+1)
return newnums
@time_count
def mode_two():
标准的写法,利用列表索引更改值
:return: None
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i, k in enumerate(nums):
nums[i] = k+1
return nums
@time_count
def mode_three():
使用 lambda 匿名函数 对列表中的数据进行处理
:return: 默认返回 None
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
nums = list(map(lambda x: x+1, nums))
return nums
@time_count
def mode_four():
装逼利器,使用列表解析式、生成式 对列表中的数据进行处理
:return: 默认返回 None
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
nums = [i+1 for i in nums]
return nums
@time_count
def mode_five():
列表生成式当然还能用来干其他事情,比如这里,我们将所有水果的单词改成首字母大写
:return: 默认返回 None
fruit = ["apple", "pear", "banana", "watermelon"]
fruit = [i.title() for i in fruit]
return fruit
print(mode_one())
print(mode_two())
print(mode_three())
print(mode_four())
print(mode_five())
>_<点我下载笔记~
Python 简单实现 斐波拉契数列 几种方式
Python 列表与字典 排序 的奇妙之旅
Python 如何修改列表中的每一个值文章目录Python 如何修改列表中的每一个值说明写法:一、最二的写法二、标准的写法三、高级的写法四、列表解析式扩展说明本人Python小菜鸡,新手一枚,分享自己平时学习的笔记内容写的不好还请见谅,欢迎大佬指点不足写法:现在有个需求,现有列表a=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]要求你把列表里的每个值加1,或者算2的平方**一、最二的写法生成一个新列表,遍历原列表 a , 把每个值加 1 后存在新列表里,最后
在内容闲暇时间,将开发过程较好的内容段珍藏起来,下面内容段是关于python为数组里的每一个元素加1的内容,应该能对各位有帮助。
#!/usr/bin/env python
[SNIPPET_NAME: Generate modified list]
[SNIPPET_CATEGORIES: Python Core]
[SNIPPET_DESCRIPTION: How to generate a modified list by iterating over each element of another
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。
示例 2:
输入: [4,3,2,1]
输出: [4,3,2,2]
解释: 输入数组表示数字 4321。
判断最...
你可以使用for循环来遍历列表中的每一个元素,并在遍历的过程中为每一个元素添加元素。
以下是一个简单的例子:
original_list =[[1, 2], [3, 4], [5, 6]]
new_element = 0
for i in range(len(original_list)):
original_list[i].append(new_element)
print(orig...