Python for 循环列表的字符串不同的输出
Python for loop list of strings different output
为什么这段代码输出不同?
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
for i in lst:
print(i[2])
print([i[2] for i in lst])
在第一种情况下,您正在进行多次打印。在第二种情况下,您正在构建一个包含所有数据的列表,然后打印该列表
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
# You are iterating over the list
for i in lst:
# prints 3rd character in each element (i)
print(i[2]) # be default this statement has newline at end
# To print with spaces try print(i[2], end=' ')
# here you are doing it using list comprehension so the output will be in a list
print([i[2] for i in lst])
首先是迭代,打印每个字符串的每个索引 2。第二个是列表理解,您可以在其中使用与上述相同的数据创建一个新列表并打印该列表。
第一个:
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
for i in lst:
print(i[2])
结果:
1
2
3
4
5
6
7
8
第二个:
print([i[2] for i in lst])
结果:
['1', '2', '3', '4', '5', '6', '7', '8']
如果您希望第一个版本模仿与第二个版本相同的结果,只需创建一个列表并附加到它:
newlst = []
for i in lst:
newlst.append(i[2])
print(newlst)
结果:
['1', '2', '3', '4', '5', '6', '7', '8']
如果你想在一行中打印列表理解,就像 for 循环,那么使用:
[print(i[2]) for i in lst]
结果:
1
2
3
4
5
6
7
8
如果你需要一个类型字符串来理解,你可以这样做:
s = "\n".join([i[2] for i in lst])
print(s)
print(type(s))
结果:
1
2
3
4
5
6
7
8
<class 'str'>
为什么这段代码输出不同?
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
for i in lst:
print(i[2])
print([i[2] for i in lst])
在第一种情况下,您正在进行多次打印。在第二种情况下,您正在构建一个包含所有数据的列表,然后打印该列表
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
# You are iterating over the list
for i in lst:
# prints 3rd character in each element (i)
print(i[2]) # be default this statement has newline at end
# To print with spaces try print(i[2], end=' ')
# here you are doing it using list comprehension so the output will be in a list
print([i[2] for i in lst])
首先是迭代,打印每个字符串的每个索引 2。第二个是列表理解,您可以在其中使用与上述相同的数据创建一个新列表并打印该列表。
第一个:
lst = ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8"]
for i in lst:
print(i[2])
结果:
1
2
3
4
5
6
7
8
第二个:
print([i[2] for i in lst])
结果:
['1', '2', '3', '4', '5', '6', '7', '8']
如果您希望第一个版本模仿与第二个版本相同的结果,只需创建一个列表并附加到它:
newlst = []
for i in lst:
newlst.append(i[2])
print(newlst)
结果:
['1', '2', '3', '4', '5', '6', '7', '8']
如果你想在一行中打印列表理解,就像 for 循环,那么使用:
[print(i[2]) for i in lst]
结果:
1
2
3
4
5
6
7
8
如果你需要一个类型字符串来理解,你可以这样做:
s = "\n".join([i[2] for i in lst])
print(s)
print(type(s))
结果:
1
2
3
4
5
6
7
8
<class 'str'>