我要附加my_list
list2 = ['1','2','3','4','5']
my_list = []
for i in list2:
my_list.append(i)
print(my_list)
这会将list2放入my_list。
结果是
['1', '2', '3', '4', '5']
但是我只想要值'2'和'5')
是这样的:
[ '2', '5']
尝试过
for i in list2:
my_list.append(i[1:4])
有什么想法吗?
答案 0 :(得分:2)
只需将一个条件与list comprehension
结合使用:
my_list = [item for item in list2 if item == '2' or item == '5']
答案 1 :(得分:0)
这取决于如何确定将list2的哪些元素添加到my_list中,而您没有提到:
现在,您可以按照@ MihaiAlexandru-Ionut的建议进行操作。
或:
list2 = ['1','2','3','4','5']
my_list = []
my_list.append(list2[1])
my_list.append(list2[4])
print(my_list)
# or
my_list = []
my_list = [list2[1], list2[4], ]
print(my_list)
答案 2 :(得分:0)
这是一种简短的方法。但是请注意,如果列表中有重复的元素,它将破坏。
list2 = ['1','2','3','4','5']
my_list = []
want = ['2', '5']
my_list = [list2[list2.index(i)] for i in list2 for item in want if i == item] # will fail if elements are not unique.
最后一行等效于此
my_list = [item for i in list2 for item in want if i == item] # much better than using index method.
这是展开的表格。
list2 = ['1','2','3','4','5']
my_list = []
want = ['2', '5']
for i in list2:
for item in want:
if i == item:
my_list.append(list2[list2.index(i)])
#my_list.append(item)
print(my_list)
答案 3 :(得分:0)
可能就是这样
list2 = ['1','2','3','4','5']
target_idexes = [2, 5]
my_list = []
for i in list2:
my_list.append(i) if int(i) in target_idexes else 0
print(my_list) # ['2', '5']
或者如果在list2中不仅只有数字:
list2 = ['1','2','3','4','5']
target_idexes = [2, 5]
my_list = []
for i in list2:
my_list.append(i) if list2.index(i) in target_idexes else 0
print(my_list) # ['3'] because indexing start from 0 and 5 is out of range
答案 4 :(得分:0)
最简单,最快的方法是对循环中要搜索的特定值使用条件语句。
if i == 2 or i == 5:
new_list.append(i)
此方法的缺点是,如果您需要扩展要检索的值的范围,则需要编写最长的条件if i == 1 or i == 5 ... or i == N:
,这不仅很不好看,而且是不好的编程习惯,因为该代码很难维护。
一种更好的方法是拥有一个包含要检索的值的列表,并在将其添加到新列表之前检查实际元素是否是此列表。
list2 = ['1','2','3','4','5']
wanted = ['2','5'] #what I search
my_list = []
for value in list2:
if value in wanted: #when value is what a I want, append it
my_list.append(value)
但是,如果要按元素的位置添加元素,而不是查找每个出现的特定值,则可以使用整数列表并在其上循环以添加所需的元素。
positions = [1,4] #indicates the positions from which I want to retrieve elements
new_list = [list[p] for p in positions] #using list comprehension for brevity
最后我要补充的是,在python中您无法执行
my_list.append(i[0,4])
因为python在查看[0,4]时,会像传递一个元组一样解释它(因为逗号),并且会出现以下错误TypeError: list indices must be integers or slices, not tuple
。