如何使用Python中的特定条件从另一个列表创建列表?

时间:2016-09-07 04:45:45

标签: python list

如何使用python从其他列表创建列表? 如果我有一个清单:

input = ['a/b', 'g', 'c/d', 'h', 'e/f']

如何创建仅包含斜线“/”的字母列表,即

desired_output = ['b','d','f']

代码非常有用。

5 个答案:

答案 0 :(得分:7)

你可能有这个输入。你可以通过简单的列表理解来获得。

input = ["a/b", "g", "c/d", "h", "e/f"]
print [i.split("/")[1] for i in input if i.find("/")==1 ]

print [i.split("/")[1] for i in input if "/" in i ]
  

输出:['b','d','f']

答案 1 :(得分:2)

使用正则表达式:

>>> from re import match
>>> input = ['a/b', 'g', 'c/d', 'h', 'e/f', '/', 'a/']
>>> [m.groups()[0] for m in (match(".*/([\w+]$)", item) for item in input) if m]
['b', 'd', 'f']

答案 2 :(得分:1)

简单的单行可能是:

>> input = ["a/b", "g", "c/d", "h", "e/f"]
>> list(map(lambda x: x.split("/")[1], filter(lambda x: x.find("/")==1, input)))
Result: ['b', 'd', 'f']

答案 3 :(得分:1)

>>>  input = ["a/b", "g", "c/d", "h", "e/f"]
>>>  output=[]
>>>  for i in input:
         if '/' in i:
             s=i.split('/')
             output.append(s[1])

>>>  output
['b', 'd', 'f']

答案 4 :(得分:0)

如果通过将所有字符串封装为“”来修复列表,则可以使用它来获得所需的内容。

input = ["a/b", "g", "c/d", "h", "e/f"]

output = []
for i in input:
    if "/" in i:
        output.append(i.split("/")[1])

print output
['b', 'd', 'f']