for循环的每次迭代中的Python新变量

时间:2014-03-15 00:03:22

标签: python

我对编码一般都是新手,只是搞乱列表,我想知道是否有办法让循环遍历列表的每个元素并相互独立地运行。 我想一个例子就是:

输入:

List1 = [ "a" , "b" , "c" , "d" , "e" ]

输出:

List2 = [ "a123" , "b123" , "c123" , "d123" , "e123" ]

4 个答案:

答案 0 :(得分:2)

这就是你要找的东西:

list2 = [item + '123' for item in list1]

有关列表推导的更多信息here

答案 1 :(得分:1)

List_One = [ "a" , "b" , "c" , "d" , "e" ]
TrailingNumbers = 3
for index in range(0, len(List_One)):
    for num in range(0,TrailingNumbers+1):
        List_One[index] = List_One[index] + str(num)
print(List_One)

这显然会修改现有的List,没有看到创建新列表的重点,但如果只是这样做:

List_Two = []
...
List_Two.append(List_One[index] + str(num))

我还假设你在每封信后都没有固定的数字 例如,这将是在每个字母后添加数字的动态方式。

List_One = [ "a" , "b" , "c" , "d" , "e" ]
List_Two = []
TrailingNumbers = 3
for obj in List_One:
    List_Two.append(obj + ''.join(list(str(num) for num in range(0,TrailingNumbers+1))))
print(List_Two)

这是另一种方法,只使用一个循环迭代第一个列表,添加第二个列表,其中包含一个生成器对象,用于将数字添加到字符串中。

第一种解决方案的更好方法是不自行计算索引,让enumerate()为您完成工作。更快一点,被认为是“最佳实践”,它类似于:

List_One = [ "a" , "b" , "c" , "d" , "e" ]
TrailingNumbers = 3
for index, obj in enumerate(List_One):
    for num in range(0,TrailingNumbers+1):
        List_One[index] = List_One[index] + str(num)
print(List_One)

它会更快一点,但会做同样的工作。

答案 2 :(得分:1)

list2 = [element + '123' for element in list1]

答案 3 :(得分:0)

功能方式:

List1 = [ "a" , "b" , "c" , "d" , "e" ]
map(lambda x: x+'123',List1)