相对较新的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