如何使用python从其他列表创建列表? 如果我有一个清单:
input = ['a/b', 'g', 'c/d', 'h', 'e/f']
如何创建仅包含斜线“/”的字母列表,即
desired_output = ['b','d','f']
代码非常有用。
答案 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']