我已经定义了一个函数,它接受像这样的列表
arr = ['C','D','E','I','M']
我有另一个产生类似列表的函数,函数是:
def tree_count(arr):
feat = ['2','2','2','2','0']
feat_2 = []
dictionary = dict(zip(arr, feat))
print('dic',dictionary)
feat_2.append([k for k,v in dictionary.items() if v=='2'])
newarr = str(feat_2)[1:-1]
print(newarr)
这会输出我想要的正确结果,即:
['C','D','E','I']
但问题是,当我在另一个函数中使用此列表时,其值应该被读作C,D,E,I
。但是当我打印这个时,括号[和'包含在结果中:
for i in newarr:
print(i)
打印结果为:[ ' C '
,依此类推。我想摆脱[ '
。我该如何解决这个问题?
答案 0 :(得分:2)
出于某种原因,您在数组上使用str()
,这就是导致数组中的方括号出现在print
语句中的原因。
看看以下方法是否适合您:
print(arr) # ['C','D','E','I'] - the array itself
print(str(arr)) # "['C', 'D', 'E', 'I']" - the array as string literal
print(''.join(arr)) # 'CDEI' - array contents as string with no spaces
print(' '.join(arr)) # 'C D E I' - array contents as string with spaces
答案 1 :(得分:1)
让你的函数返回字典,而不仅仅是打印它:
def tree_count(arr):
feat = ['2','2','2','2','0']
dictionary = dict(zip(arr, feat))
dictionary = [k for k in dictionary if dictionary[k] == '2']
return dictionary
例如,
$ results = tree_count(['C','D','E','I','M'])
$ print(results)
['I', 'C', 'D', 'E']
漂亮的印刷很简单:
$ print("\n".join(results))
I
C
D
E
...或者如果您只是想要,
:
$ print(", ".join(results))
I, C, D, E