List 在Python中创建列表列表和跳过元素
如何使用List 在Python中创建列表列表和跳过元素,list,python-3.x,List,Python 3.x,如何使用[x for x in input](其中input是字符串列表)创建列表并跳过满足特定条件的元素?例如,这是列表列表列表: [['abc', 'def', 'ghi'], ['abc', 'd_f', '+hi'], ['_bc', 'def', 'ghi']] 这应该是输出——跳过的元素包含''.'或'+': [['abc', 'def', 'ghi'], ['abc'], ['def', 'ghi']] 谢谢 您需要了解子列表: [[item for item in sub i
[x for x in input]
(其中input是字符串列表)创建列表并跳过满足特定条件的元素?例如,这是列表列表列表:
[['abc', 'def', 'ghi'], ['abc', 'd_f', '+hi'], ['_bc', 'def', 'ghi']]
这应该是输出——跳过的元素包含''.'或'+':
[['abc', 'def', 'ghi'], ['abc'], ['def', 'ghi']]
谢谢 您需要了解子列表:
[[item for item in sub if not any(char in item for char in '_+')] for sub in input]
这是以下内容的简化版本:
result = []
for sub in input:
result.append([])
for item in sub:
should_add = True
for char in '_+':
if char in item:
should_add = False
break
if should_add:
result[-1].append(item)
您需要了解子列表:
[[item for item in sub if not any(char in item for char in '_+')] for sub in input]
这是以下内容的简化版本:
result = []
for sub in input:
result.append([])
for item in sub:
should_add = True
for char in '_+':
if char in item:
should_add = False
break
if should_add:
result[-1].append(item)
与另一个答案非常相似,除了测试字符串是否只包含字母数字字符,而不是明确的
'
和'+'
。循环遍历每个子列表,然后遍历每个子列表中的字符串
filtered = [[s for s in l if s.isalpha()] for l in lists]
print(filtered)
[['abc', 'def', 'ghi'], ['abc'], ['def', 'ghi']]
与另一个答案非常相似,除了测试字符串是否只包含字母数字字符,而不是明确的
'
和'+'
。循环遍历每个子列表,然后遍历每个子列表中的字符串
filtered = [[s for s in l if s.isalpha()] for l in lists]
print(filtered)
[['abc', 'def', 'ghi'], ['abc'], ['def', 'ghi']]
另一个使用集合的简短版本:
另一个使用集合的简短版本: