好的,看起来很多人不明白这个问题。我会说得更清楚。
我有一个清单:
List_1 = [1,2,3,4,5,6,7,8,9]
而我在我的程序中所做的是,如果我按下 1,这将使 List_1[0] 变成 X 或我按下的任何数字,它都会变成 X。我的列表总共有 9 个数字。
我想要做的是,如果将 3 个特定数字转换为 X,那么程序将继续运行。
所以如果我最终得到:
List_1 = [1,'X',3,4,'X',6,'X',8,9]
然后程序将继续。
好的,看起来很多人不明白这个问题。我会说得更清楚。
我有一个清单:
List_1 = [1,2,3,4,5,6,7,8,9]
而我在我的程序中所做的是,如果我按下 1,这将使 List_1[0] 变成 X 或我按下的任何数字,它都会变成 X。我的列表总共有 9 个数字。
我想要做的是,如果将 3 个特定数字转换为 X,那么程序将继续运行。
所以如果我最终得到:
List_1 = [1,'X',3,4,'X',6,'X',8,9]
然后程序将继续。
如果您需要一个连续的集合(例如原始问题中的前三个条目),请使用切片语法:
list_2 = a[:3]
如果您只需要特定集合中的那些元素,请使用理解:
stuff_i_need = [1, 'gg']
list_2 = [x for x in L if x in stuff_i_need]
(虽然,如果你知道你需要什么并且它是一个非常小的列表,那么只需手动访问列表中包含你需要的元素的位置就可以了)。
如果您想制作列表中某些内容的字符串,一个选择是自己连接它们并使用字符串构造函数包装元素str
:
str(L[0]) + str(L[3])
做同样事情的另一种方法是:
import operator
reduce(operator.add, map(str, L))
# Also, just replace L with any of the slicing or accessing mentioned above.
如其他答案和评论所述,使用切片。但是,如果索引不连续,您可以将列表理解与enumerate
:
>>> [x for i, x in enumerate(a) if i in [0, 1, 3]]
[1, 'X', 'X']
更新
问题发生了变化,而是询问如何获取列表的不同部分并将它们连接成一个字符串。对上面的小修改:
>>> "".join(str(x) for i, x in enumerate(L) if i in [0, 3])
'1gg'