我有两个列表x和y
x = ['13', '77', '58', '792', '171']
y = []
我需要将所有以x中的'7'开头的元素添加到y
我尝试过这样的事情:
i = 0
for i in range(len(x)):
if i[0] == '7':
y.append(i[0])
i += 1
答案 0 :(得分:1)
In [16]: x = ['13', '77', '58', '792', '171']
In [17]: y = [i for i in x if i.startswith('7')]
In [18]: y
Out[18]: ['77', '792']
答案 1 :(得分:1)
我选择了一个更加详细的解决方案,这个解决方案是正确的并且应该易于阅读。
x = ['13', '77', '58', '792', '171']
y = []
for e in x:
if e[0] == '7':
y.append(e)
答案 2 :(得分:0)
另一种简洁的方法是使用方便的filter()函数,它接受一个函数将返回一个" bool" (在这种情况下是一个lambda函数。)
x = ['13', '77', '58', '792', '171']
y = list(filter(lambda item: item.startswith('7'), x))
(这不会将元素附加到y,不确定是否需要。) 不是防弹的,但适用于你的例子。