我有一个列表列表,我想将其转换为字符串列表,其中字符串是变量的名称。我想循环遍历列表并将列表的长度提取到一个列表中,将列表的名称提取到另一个列表中。为了说明这里尝试使用str(变量),这显然不起作用,因为它转换变量的值,而不是名称。我正在尝试转换名称
# Here are the initial lists
common_nouns = ['noun', 'fact', 'banana']
verbs = ['run', 'jump']
adjectives = ['red', 'blue']
# Here is my list of lists:
parts_of_speech = [common_nouns, verbs, adjectives]
labels=[]
data=[]
for pos in parts_of_speech:
if pos != []:
labels.append(str(pos)) # This part doesn't work
data.append(len(pos))
结果:
labels = ["['noun', 'fact', 'banana']", "['run', 'jump']", "['red', 'blue']"]
期望的结果:
labels = ['common_nouns', 'verbs', 'adjectives']
编辑:添加了初始列表
答案 0 :(得分:1)
这与如何拥有“变量变量”的常见问题相反。但答案完全相同:不要这样做,使用词典。
将这些数据存储为单个字典,并将这些值作为键,然后您可以使用.keys()
方法为您提供所需的结果。
答案 1 :(得分:0)
丹尼尔罗斯曼建议,我最后做了一本字典。以下是实施:
parts_of_speech = [common_nouns, verbs, adjectives]
all_labels = ['common_nouns', 'verbs', 'adjectives']
pos_dict = dict(zip(all_labels, parts_of_speech))
labels=[]
data=[]
for pos, lst in pos_dict.items():
if lst:
data.append(len(lst))
labels.append(pos)