我的代碼是....
names = ['ali', 'parham', 'hasan', 'farhad']
print('names: ', [print(i) for i in names])
我的輸出是這個......
ali
parham
hasan
farhad
names: [None, None, None, None]
但我想要這個....
names: ali, parham, hasan, farhad
為什么串列中的內容是“無”?!
為什么名字在上面幾行?!
uj5u.com熱心網友回復:
當您執行print('names: ', [print(i) for i in names])以下操作時,會發生以下情況:執行第一個printPython 必須評估函式的引數。第二個引數是[print(i) for i in names]。在這里,您遍歷名稱,列印它們并將呼叫結果放入print串列中。這個結果總是None。
所以在這第一步之后,所有的名字都被列印出來,然后你實際上只剩下print('names: ', [None, None, None, None]). 現在print將準確輸出。
如果要將串列的條目組合為字串,請使用 stringsjoin方法。以下是互動式解釋器的一些示例。
>>> '-'.join(['A', 'B', 'C'])
'A-B-C'
>>> 'x'.join(['A', 'B', 'C'])
'AxBxC'
>>> ' '.join(['A', 'B', 'C'])
'A B C'
>>> values = ['x', 'yy', 'zzz']
>>> ' '.join(values)
'x yy zzz'
>>> names = ['ali', 'parham', 'hasan', 'farhad']
>>> ', '.join(names)
'ali, parham, hasan, farhad'
所以你需要的是:
print('names:', ', '.join(names))
或使用 f 弦
print(f"names: {', '.join(names)}")
這會給你names: ali, parham, hasan, farhad。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/374904.html
