如何遍历子列表的元素
How iterate over elements of a sub list
希望你能帮助我:
previous=[[0, 0, 1, 1], [0, 0, 0, 0], [0, 0, 1, 2], [0, 0, 1, 2], [0, 0, 1, 1], [0, 1, 1, 2], [0, 1, 1, 1], [0, 0, 1, 2], [0, 1, 1, 2], [0, 0, 0, 0]]
type(previous)
Out[67]: list
previous[0][-1]
Out[66]: 1
previous[1][-1]
Out[65]: 0
for p in previous:
print(p)
[0, 0, 1, 1]
[0, 0, 0, 0]
[0, 0, 1, 2]
[0, 0, 1, 2]
[0, 0, 1, 1]
[0, 1, 1, 2]
[0, 1, 1, 1]
[0, 0, 1, 2]
[0, 1, 1, 2]
[0, 0, 0, 0]
我的问题,我需要从子列表中的每个元素中获取值 3 并将其追加以创建另一个列表。
结果应该是:
[1,0,1,1,1,1,1,1,1,0]
我试过了,但没有成功:
mylist=[]
for p in previous:
for x in p:
mylist.append(p[x][-1])
print(mylist)
和:
for p in previous:
for x in p:
print ([p[x]])
p
是子列表,您不需要使用 for x in p:
再次遍历它来获取第三个元素(因此您的代码在尝试时实际上会引发 IndexError
索引子列表 p
如果 x
超出其范围,并且将在尝试使用 p[x][-1]
索引 p[x]
处的数字时引发 TypeError
,尽管如此,p[-1]
是最后一个元素(在你的例子中是第四个),你应该使用正索引:
p[2] # the third element
或者使用负索引获取倒数第二个元素:
p[-2]
但是如果列表应该增长得更长,正索引更好,因为它不会受到添加到列表末尾的元素的影响。
你也可以写一个列表理解而不是 for
循环 + append
:
mylist = [p[2] for p in previous]
print(mylist)
输出:
[1, 0, 1, 1, 1, 1, 1, 1, 1, 0]
在你的循环中 p
是子列表。第一次通过循环p
是
[0, 0, 1, 1]
Python 进行从零开始的索引(first 元素总是在索引 0 处)。所以 p[0]
是第一个元素。第三个元素是 p[2]
.
如果使用负索引,-1 给出最后一个元素,-2 是倒数第二个或倒数第二个元素。
要修改您的解决方案以使其生效,您可以删除内部循环。你不需要它。您已经有了子列表。
mylist=[]
for p in previous:
mylist.append(p[2])
print(mylist)
希望你能帮助我:
previous=[[0, 0, 1, 1], [0, 0, 0, 0], [0, 0, 1, 2], [0, 0, 1, 2], [0, 0, 1, 1], [0, 1, 1, 2], [0, 1, 1, 1], [0, 0, 1, 2], [0, 1, 1, 2], [0, 0, 0, 0]]
type(previous)
Out[67]: list
previous[0][-1]
Out[66]: 1
previous[1][-1]
Out[65]: 0
for p in previous:
print(p)
[0, 0, 1, 1]
[0, 0, 0, 0]
[0, 0, 1, 2]
[0, 0, 1, 2]
[0, 0, 1, 1]
[0, 1, 1, 2]
[0, 1, 1, 1]
[0, 0, 1, 2]
[0, 1, 1, 2]
[0, 0, 0, 0]
我的问题,我需要从子列表中的每个元素中获取值 3 并将其追加以创建另一个列表。
结果应该是:
[1,0,1,1,1,1,1,1,1,0]
我试过了,但没有成功:
mylist=[]
for p in previous:
for x in p:
mylist.append(p[x][-1])
print(mylist)
和:
for p in previous:
for x in p:
print ([p[x]])
p
是子列表,您不需要使用 for x in p:
再次遍历它来获取第三个元素(因此您的代码在尝试时实际上会引发 IndexError
索引子列表 p
如果 x
超出其范围,并且将在尝试使用 p[x][-1]
索引 p[x]
处的数字时引发 TypeError
,尽管如此,p[-1]
是最后一个元素(在你的例子中是第四个),你应该使用正索引:
p[2] # the third element
或者使用负索引获取倒数第二个元素:
p[-2]
但是如果列表应该增长得更长,正索引更好,因为它不会受到添加到列表末尾的元素的影响。
你也可以写一个列表理解而不是 for
循环 + append
:
mylist = [p[2] for p in previous]
print(mylist)
输出:
[1, 0, 1, 1, 1, 1, 1, 1, 1, 0]
在你的循环中 p
是子列表。第一次通过循环p
是
[0, 0, 1, 1]
Python 进行从零开始的索引(first 元素总是在索引 0 处)。所以 p[0]
是第一个元素。第三个元素是 p[2]
.
如果使用负索引,-1 给出最后一个元素,-2 是倒数第二个或倒数第二个元素。
要修改您的解决方案以使其生效,您可以删除内部循环。你不需要它。您已经有了子列表。
mylist=[]
for p in previous:
mylist.append(p[2])
print(mylist)