从列表中选择一个特定元素并将其附加到另一个列表中

时间:2016-11-28 23:41:25

标签: python list loops append

我有两个列表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

3 个答案:

答案 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,不确定是否需要。) 不是防弹的,但适用于你的例子。