正确阅读python列表

2024-04-16 13:55:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我定义了一个函数,它接受这样一个列表

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 ',依此类推。我想摆脱[ '。我该怎么解决这个问题?你知道吗


Tags: 函数intree列表fordictionary定义def
2条回答

由于某种原因,您在数组上使用str(),这就是导致array中的方括号出现在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

使函数返回字典而不是仅仅打印它:

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

相关问题 更多 >