相對較新的Python我有我似乎無法輕易解決的一個問題(或完全理解) 運行跟隨着代碼:Python的轉置列清單列清單
(" ".join(map(str,np.int32(((np.arange(14))))))).split()
產生如下:
Out[54]: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13']
而
(" ".join(map(str,np.int32(((np.arange(15))))))).split()
產生以下
Out[2]:
['0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
'11',
'12',
'13',
'14']
我希望能夠創建列的形式而不是使用少於15個數字的行。
有沒有人有任何幫助提供這個?
原因是,如果是14而不是15(或更大),QtWidgets.QCombobox.additems('字符串列表')會使控制檯/內核出現亂碼。
(使用spyder的3.6/IPython的3.6.2 /安納康達(4.4,64位)/ PyQt的5.6.2上的窗口7)
EDIT 1: 非常感謝您的答覆.. ..然而產生map(str, np.int32(np.arange(14)))
Out[4]: <map at 0xba4f2b0>
。
突然它在列表中少於15個項目。似乎越來越像pyqt/QCombobox的問題是一些隨機錯誤(當有太多的組合框或其他... ..可能是另一個問題。)
這兩個列表都具有相同的「表單」,這只是IPython在不適合一行時顯示的不同。 – Goyo
在Python 3.x中,'map'返回一個地圖對象,而不是一個序列,除非物化......使用簡單明確的列表理解來代替(不需要numpy,加入然後分割字符串等等),例如: 'items = [str(i)for i in range(14)]'並將其傳遞給你的組合框 –
「突然它在列表中少於15個項目。」也許你在代碼中改變了一些東西。沒有一個簡單的例子,我們永遠不會知道PyQt中是否存在錯誤,或者您是否意外地修復了程序中的錯誤以及錯誤。這使得這個問題對其他人不太有用。 – Trilarion