我有一个带有数字的名单。我想在文本文件中写名字。但是我无法删除这些数字。
print ("node_result[0]")
print (node_result[0])
print ("node_result[1]")
print (node_result[1])
for i in range(0, len(nodeName)):
temp=str(node_result[i])
if not node_result[i] == {}:
dosya.write(nodeName[i] + ": ")
dosya.write(temp)
dosya.write('\n')
dosya.close()
下面的列表是上述打印命令的输出:
node_result[0]
{32: 'Konstantinos'}
node_result[1]
{32: 'Silvija', 33: 'John', 34: 'Micheal'}
如何获取不带数字的这些名称?
答案 0 :(得分:1)
尝试以下
# utility function to flatten a list of lists
flatten = lambda l: [item for sublist in l for item in sublist]
# define your test data
node_result = [
{32: 'Konstantinos'},
{32: 'Silvija', 33: 'John', 34: 'Micheal'}]
# fetch names and flatten results
names = flatten([d.values() for d in node_result])
# => ['Konstantinos', 'Silvija', 'John', 'Micheal']
如果要保留名称属于一个node_result
项目的信息,可以省略对flatten
的调用
names = [d.values() for d in node_result]
# => [['Konstantinos'], ['Silvija', 'John', 'Micheal']]
答案 1 :(得分:0)
node_result的每个元素都是完整的字典。要仅获取字典值,请调用.values()
:
for i in range(0, len(nodeResult)):
if not node_result[i] == {}:
print(node_result[i].values())
.values()
返回具有给定索引node_result
的所有值的列表。
答案 2 :(得分:0)
a=[{32: 'Konstantinos'},{32: 'Silvija', 33: 'John', 34: 'Micheal'}]
name_list=[]
for i in a:
for j in i.values():
name_list.append(j)
print (name_list)
结果将是:
['Konstantinos','Silvija','John','Micheal']