相关疑难解决方法(0)

使用空格拆分python列表的第一项

我有一个简单的列表如下:

lst = ['11 12221/n']
Run Code Online (Sandbox Code Playgroud)

我想将第一项分成如下列表:

['11', '12221']
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎相对简单,但我不能让它工作.我的第一个方法是:

lst[0].split() 
Run Code Online (Sandbox Code Playgroud)

但是当我打印列表时没有发生任何变化.我因此尝试过:

newLst=[]

for x in lst:
    newList.append(x.split())
Run Code Online (Sandbox Code Playgroud)

但是我得到了

[['11', '12221\n']]
Run Code Online (Sandbox Code Playgroud)

我认为我必须从根本上误解列表理解,有人可以解释为什么我的代码不起作用以及应该如何完成它?

谢谢

python whitespace list-comprehension list

5
推荐指数
2
解决办法
1834
查看次数

如果列表后没有足够的连续内存,CPython 如何处理列表扩展?

由于是可变的,当 Pythonlist被扩展时(例如mylist.extend()mylist += anotherlist),列表的 id 不会改变。

我知道(至少在 CPython 中)列表在内存中是连续的(并且 id 恰好是列表头的地址)。如果列表后面的内存已经高度碎片化并且无法分配列表扩展(即使有足够的可用空间,尽管该区域不连续)怎么办?分配失败?如何缓解这种情况?

python list append extend

5
推荐指数
1
解决办法
388
查看次数

将子列表作为对象而不是列表复制到主列表中

child = []
parent = [1, 3, 5, 7, 9]
index = 2
child.append(parent[:index])
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,而不是返回我的子列表

child = [1, 3]
Run Code Online (Sandbox Code Playgroud)

我得到一个孩子名单:

child = [[1, 3]]
Run Code Online (Sandbox Code Playgroud)

是否有一种单行方法可以将列表中的一些对象复制到另一个列表中而不将其放入嵌套列表中?

python arrays copy list python-3.x

5
推荐指数
1
解决办法
400
查看次数

添加数字,然后将元组列为元组列表,但它会丢弃外部元组

我想添加一个(数字,(元组))的元组,但它会丢弃外部元组.

如何更改代码以使l1看起来像L2?它似乎删除外部元组并将其转换为列表元素?我怎么阻止它?更好的是,它为什么会发生?

l1 = []
t1 = (1.0 , (2.0,3.0))
l1.extend((t1))
t2 = (4.0 , (5.0,6.0))
l1.extend(t2)
print(l1)

l2 = [(1.0, (2.0,3.0)),
      (4.0, (5.0,6.0))]
print(l2)
Run Code Online (Sandbox Code Playgroud)

l1出现为[1.0,(2.0,3.0),4.0,(5.0,6.0)]

l2出现为[(1.0,(2.0,3.0)),(4.0,(5.0,6.0))]

python tuples list

5
推荐指数
1
解决办法
195
查看次数

Python将数组追加到数组

我目前正在开发DES实现,在代码的一部分中,我必须将数组追加到数组中,下面是我的代码:

C0=[1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1]

def Fiestel():
    C=[]
    C.append(C0)
    temp=[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1]
    C.append(temp)
    print(C)
Fiestel()
Run Code Online (Sandbox Code Playgroud)

如何将数组附加到现有数组上,甚至尝试将C声明为2d数组。感谢您的帮助。

每个元素本身就是一个数组。

在此处输入图片说明

python arrays

5
推荐指数
2
解决办法
2万
查看次数

TypeError:'float'对象不可迭代,Python列表

我正在用Python编写程序,并试图扩展一个列表:

spectrum_mass[second] = [1.0, 2.0, 3.0]
spectrum_intensity[second] = [4.0, 5.0, 6.0]
spectrum_mass[first] = [1.0, 34.0, 35.0]
spectrum_intensity[second] = [7.0, 8.0, 9.0]

for i in spectrum_mass[second]:
    if i not in spectrum_mass[first]:
        spectrum_intensity[first].extend(spectrum_intensity[second][spectrum_mass[second].index(i)])
        spectrum_mass[first].extend(i)
Run Code Online (Sandbox Code Playgroud)

然而,当我尝试这样做时,我正在TypeError: 'float' object is not iterable 上线3.

要清楚,spectrum_mass[second]是一个列表(在字典中,第二个和第一个是键),按原样spectrum_intensity[first],spectrum_intensity[second]spectrum_mass[second].所有列表都包含浮点数.

python loops list typeerror python-2.7

4
推荐指数
1
解决办法
8247
查看次数

类型错误:append() 缺少 1 个必需的位置参数:“值”

我有大小为 360x190 的变量“x_data”,我试图选择特定的数据行。

 x_data_train = []
 x_data_train = np.append([x_data_train,
                           x_data[0:20,:],
                           x_data[46:65,:],
                           x_data[91:110,:],
                           x_data[136:155,:],
                           x_data[181:200,:],
                           x_data[226:245,:],
                           x_data[271:290,:],
                           x_data[316:335,:]],axis = 0)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: TypeError:append() 缺少 1 个必需的位置参数:“值”

我哪里做错了 ?

如果我正在使用

x_data_train = []
x_data_train.append(x_data[0:20,:])
x_data_train.append(x_data[46:65,:])
x_data_train.append(x_data[91:110,:])
x_data_train.append(x_data[136:155,:])
x_data_train.append(x_data[181:200,:])
x_data_train.append(x_data[226:245,:])
x_data_train.append(x_data[271:290,:])
x_data_train.append(x_data[316:335,:])
Run Code Online (Sandbox Code Playgroud)

输出的大小是 8 行而不是 160 行。

更新:

在 matlab 中,我将加载文本文件,x_data 将是具有 360 行和 190 列的变量。如果我想选择 1 到 20、46 到 65、... 数据行,我只需给出 x_data_train = xdata([1:20,46:65,91:110,136:155,181:200,226:245,271:290,316:335], :); 结果 x_data_train 将是我想要的数组。

如何在 python 中做到这一点,因为它会生成由 8 个数组子集组成的数组,每个子集为 20*192,但我希望它是一个数组 160*192

append python-3.x

4
推荐指数
1
解决办法
7万
查看次数

如何在 Python 3.7 中向 bytearray 添加字节?

我是 Python 3.7 的新手,我正在尝试使用以下代码从串行端口读取字节。我正在使用pySerial模块并且read()函数返回bytes.

self.uart = serial.Serial()
self.uart.port = '/dev/tty/USB0'
self.uart.baudrate = 115200
self.uart.open()
# buffer for received bytes
packet_bytes = bytearray()
# read and process data from serial port
while True:
    # read single byte from serial port
    current_bytes = self._uart.read()
    if current_bytes is B'$':
        self.process_packet(packet_bytes)
        packet_bytes = bytearray()
    else:
        packet_bytes.append(current_bytes)        <- Error occurs here
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

类型错误:需要一个整数

一些想法如何解决?

python arrays pyserial python-3.x

4
推荐指数
1
解决办法
8528
查看次数

附加到Python列表而不制作列表列表

我从一个空列表开始,并提示用户输入一个短语.我想将每个字符添加为数组的单个元素,但我这样做的方式会创建一个列表列表.

myList = []
for i in range(3):
    myPhrase = input("Enter some words: ")
    myList.append(list(myPhrase))
    print(myList)
Run Code Online (Sandbox Code Playgroud)

我明白了:

Enter some words: hi bob
[['h', 'i', ' ', 'b', 'o', 'b']]

Enter some words: ok
[['h', 'i', ' ', 'b', 'o', 'b'], ['o', 'k']]

Enter some words: bye
[['h', 'i', ' ', 'b', 'o', 'b'], ['o', 'k'], ['b', 'y', 'e']]
Run Code Online (Sandbox Code Playgroud)

但我想要的结果是:

['h', 'i', ' ', 'b' ... 'o', 'k', 'b', 'y', 'e']
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
1530
查看次数

dict.setdefault(key,[]).append() - >去掉附加列表

当使用带有列表类型定义的setdefault时,如何防止将列表添加到列表中.

output = dict()
output.setdefault("key", []).append(["name", 1])
print output
>>> {'key': [['name', 1]]}
Run Code Online (Sandbox Code Playgroud)

期望的输出

>>> {'key': ['name', 1]}
Run Code Online (Sandbox Code Playgroud)

python dictionary

3
推荐指数
1
解决办法
1841
查看次数