遍历列表-创建列表

时间:2020-07-03 02:45:08

标签: python loops dictionary variables nested-lists

以下代码具有一个名为“ list_a”的列表-循环了4次。

list_a=['red','green','blue', 'yellow']

list_1=[]
for i in list_a[0]:
    list_1.append(i)
print(list_1)

list_2=[]
for i in list_a[1]:
    list_2.append(i)
print(list_2)

list_3=[]
for i in list_a[2]:
    list_3.append(i)
print(list_3)

list_4=[]
for i in list_a[3]:
    list_4.append(i)
print(list_4)

如果要遍历“ list_a”中的每个元素并将每个字母拆分为一个字符串,则可以按照上面的代码进行操作。但是,有一种方法可以编写较短的代码-而不是每次循环遍历'list_a'元素时都编写相同的代码。

例如-我的尝试是:

list_a=['red','green','blue', 'yellow']

number=0
while number<len(list_a):
    list_(int(number+1))=[]
    for i in list_a[number]:
        list_(int(number+1)).append(i)
    print(list_(int(number+1))
number+=1

希望您能提供帮助-谢谢。

6 个答案:

答案 0 :(得分:1)

最短的代码:

[[*a] for a in list_a]

输出:

[['r', 'e', 'd'], ['g', 'r', 'e', 'e', 'n'], ['b', 'l', 'u', 'e'], ['y', 'e', 'l', 'l', 'o', 'w']]

说明:*a称为解包,当应用于字符串时,将其解包为单个字符。 [*a]表示我们正在将其解压缩到列表中。仅适用于Python 3。

答案 1 :(得分:0)

这是你的追求吗?

list_a = ['red', 'green', 'blue', 'yellow']
list_b = [[ch for ch in word] for word in list_a]
print(list_b)

输出:

[['r', 'e', 'd'], ['g', 'r', 'e', 'e', 'n'], ['b', 'l', 'u', 'e'], ['y', 'e', 'l', 'l', 'o', 'w']]

或者也许:

list_a = ['red', 'green', 'blue', 'yellow']
for word in list_a:
    print([ch for ch in word])

结果:

['r', 'e', 'd']
['g', 'r', 'e', 'e', 'n']
['b', 'l', 'u', 'e']
['y', 'e', 'l', 'l', 'o', 'w']

答案 2 :(得分:0)

尝试使用以下代码:

list_a=['red','green','blue', 'yellow']
output_lst = []
for word in list_a:
    temp = []
    for char in word:
        temp.append(char)
    output_lst.append(temp)
print(output_lst) 

答案 3 :(得分:0)

在您的第二个代码(尝试)中,您无法像在代码中那样定义列表名称(Python不能那样工作),相反,您必须创建列表列表(嵌套列表)解决这个问题。我正在附上示例代码来解决此问题并输出。

示例代码

lst=[list(i) for i in list_a]

离开列表_a Be

list_a=['red','green',]

其输出

[[''r','e','d'],['g','r','e','e','e','n']]

看到的是包含每个元素的嵌套列表

答案 4 :(得分:0)

这是获得相同输出的简短方法:

代码:

list_a=['red','green','blue', 'yellow']

for word in list_a:
    print(list(word))

输出:

['r', 'e', 'd']
['g', 'r', 'e', 'e', 'n']
['b', 'l', 'u', 'e']
['y', 'e', 'l', 'l', 'o', 'w']

答案 5 :(得分:0)

遍历list_a中的每个元素时,请使用列表推导将每个字母作为字符串存储在另一个列表中。我尝试了以下代码:

list_a=['red','green','blue', 'yellow']
list_b=[]
for i in list_a:
    list_b.append([j for j in i])
for i in list_b:
    print(i)

此处list_b包含list_a中每个字符串的子列表。每个子列表都包含一个字符串的所有字符作为单独的字符串。

这给出了以下输出:

C:\User\Python>python script.py
['r', 'e', 'd']
['g', 'r', 'e', 'e', 'n']
['b', 'l', 'u', 'e']
['y', 'e', 'l', 'l', 'o', 'w']