我有一个简单的列表如下:
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)
我认为我必须从根本上误解列表理解,有人可以解释为什么我的代码不起作用以及应该如何完成它?
谢谢
由于是可变的,当 Pythonlist被扩展时(例如mylist.extend()或mylist += anotherlist),列表的 id 不会改变。
我知道(至少在 CPython 中)列表在内存中是连续的(并且 id 恰好是列表头的地址)。如果列表后面的内存已经高度碎片化并且无法分配列表扩展(即使有足够的可用空间,尽管该区域不连续)怎么办?分配失败?如何缓解这种情况?
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)
是否有一种单行方法可以将列表中的一些对象复制到另一个列表中而不将其放入嵌套列表中?
我想添加一个(数字,(元组))的元组,但它会丢弃外部元组.
如何更改代码以使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))]
我目前正在开发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编写程序,并试图扩展一个列表:
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].所有列表都包含浮点数.
我有大小为 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
我是 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)
我收到以下错误:
类型错误:需要一个整数
一些想法如何解决?
我从一个空列表开始,并提示用户输入一个短语.我想将每个字符添加为数组的单个元素,但我这样做的方式会创建一个列表列表.
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) 当使用带有列表类型定义的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 ×9
list ×5
arrays ×3
python-3.x ×3
append ×2
copy ×1
dictionary ×1
extend ×1
loops ×1
pyserial ×1
python-2.7 ×1
tuples ×1
typeerror ×1
whitespace ×1