在python中调整列表的一部分

时间:2014-05-01 17:58:35

标签: python list

我是python的新手,但对编程并不陌生。我使用的是Python 2.7.5版。

我有一个列表A,其中每个条目都包含('string1', 'string2'),我有M个这些元素。我有另一个列表B,(其中每个条目还包含('string1', 'string2')),比列表A小得多,并且有N个元素。我希望保留列表N的第一个A元素并摆脱其余部分。我该怎么办?任何帮助将不胜感激。

4 个答案:

答案 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.