我是python的新手,但对编程并不陌生。我使用的是Python 2.7.5版。
我有一个列表A
,其中每个条目都包含('string1', 'string2')
,我有M
个这些元素。我有另一个列表B
,(其中每个条目还包含('string1', 'string2')
),比列表A
小得多,并且有N
个元素。我希望保留列表N
的第一个A
元素并摆脱其余部分。我该怎么办?任何帮助将不胜感激。
答案 0 :(得分:1)
您应该使用内置函数len()
并在此处切片:
>>> A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> B = [10, 54]
>>> A = A[len(B):]
>>> A
[3, 4, 5, 6, 7, 8, 9]
以下是切片和len()
:
<强> len()
强>
>>> lst = [1, 2, 3, 6, 5]
>>> len(lst)
5
>>> lst.append(7)
>>> lst.append(4)
>>> len(lst)
7
>>> lst
[1, 2, 3, 6, 5, 7, 4]
<强>切片:强>
>>> lst = [1, 5, 7, 4, 3, 2]
>>> lst[3:5]
[4, 3]
>>> lst[3:]
[4, 3, 2]
>>> lst[:3]
[1, 5, 7]
>>> lst[:3] = ''
>>> lst
[4, 3, 2]
正如您在顶部代码末尾所看到的,切片也可用于删除列表的某些部分。
希望这有帮助!
答案 1 :(得分:0)
len
和列表切片是您的解决方案。
new_A = A[:len(B)]
len(B)
将为您提供列表B
的长度,并将列表切割为:
list[start=0 : end=len(list) (: step)]
这也适用于字符串:)
答案 2 :(得分:0)
您可以根据一秒的长度"slice"第一个列表:
>>> l1 = [('a', 'b'), ('c', 'd'), ('e', 'f'), ('g', 'h')]
>>> l2 = [('what', 'a'), ('wonderful', 'world')]
>>> l1[:len(l2)]
[('a', 'b'), ('c', 'd')]
答案 3 :(得分:0)
一般情况下,请尽量提供实际的代码示例。
但是从您的问题来看,似乎您希望将较长的列表截断为较短列表的长度。
可以使用python中的[i:j](切片)表示法控制列表,其中i是起始索引,j是新列表的结束索引
例如
>>> A = [1, 2, 3, 4]
>>> A[:2]
[1, 2]
>>>
对于你的情况,你想要截断到B的长度(可以使用len(B)找到) 简单地:
A = A[:len(B)]
我希望这能回答你的问题,切片会更详细here.