如何从以x开头的列表列表中提取单词

时间:2017-03-21 12:42:41

标签: python python-2.7 python-3.x nested-lists

我想从列表列表中提取以每个字母开头的所有单词。 我有以下代码,但它不适用于列表列表。

my_list= [['ARON', '0.1'], ['BEY', '0.2'], ['ABI', '0.05'], ['ZBBY', '0.9'], ['KB', '0.4']]


result = []

for i in sorted_firstnames:
    if i[0] == 'a'.upper():
          result.append(i)

result

4 个答案:

答案 0 :(得分:0)

你可以试试这个

>>> x = 'a'
>>> print([i for i in my_list if i[0][0].casefold() == x])
[['ARON', '0.1'], ['ABI', '0.05']]

如果你只想要单词,

>>> print([i[0] for i in my_list if i[0][0].casefold() == x])
['ARON', 'ABI']

答案 1 :(得分:0)

您可以修改代码,如下所示,只需获取以' A'开头的名称。 :

my_list= [['ARON', '0.1'], ['BEY', '0.2'], ['ABI', '0.05'], ['ZBBY', '0.9'], ['KB', '0.4']]

result = []

for i in my_list: 
    if i[0][0] == 'a'.upper():
          result.append(i[0]) 

print(result)

结果是:

['ARON', 'ABI']

答案 2 :(得分:0)

这是我的看法。

my_list= [['ARON', '0.1'], ['BEY', '0.2'], ['ABI', '0.05'], ['ZBBY', '0.9'], ['KB', '0.4']]

alphabet = 'abcdefghijklmnopqrstuvtwxyz'

result = {k:[sublist[0] for sublist in my_list if sublist[0][0].lower() == k] for k in alphabet}
print(result)  # prints: {'v': [], 'c': [], 'b': ['BEY'], 'o': [], ...}
active = {k:v for k,v in result.items() if v}
print(active)  # prints:  {'z': ['ZBBY'], 'b': ['BEY'], 'a': ['ARON', 'ABI'], 'k': ['KB']}

扫描每个字母并将结果放入result。然后它会在active中隔离实际返回匹配的字母。

您可以将两个词典理解合二为一,但结果不是很易读。

答案 3 :(得分:0)

您可以使用startswith函数检查字符串的起始字母。

请尝试以下代码:

my_list= [['ARON', '0.1'], ['BEY', '0.2'], ['ABI', '0.05'], ['ZBBY', '0.9'], ['KB', '0.4']]
result = []

for i in my_list:
    if i[0].startswith('a'.upper()):
          result.append(i[0])

print result

<强>输出:

['ARON', 'ABI']

如有任何疑问,请与我们联系。