在Python中拆分列表条目只会导致创建子列表

问题描述 投票:0回答:1

我正在尝试拆分列表条目,它们都具有类似“50 0.096453”的结构,因为我想将每个条目的两个数字分成两个单独的列表。

我已经尝试过:

stimulustimes, stimulusamp = map(list, zip(*(i.split("  ") for i in stimuluslist)))

但是,这会返回错误“没有足够的值来解压(预期为 2,得到 1)”。 当尝试

stimuluslist=[i.split("  ") for i in stimuluslist]
时,它返回相同的原始列表,但所有条目现在都是子列表 ['50 0.096453'] 而不是字符串。

stimulustimes=[i.split("  ")[0] for i in stimuluslist]
不知何故可以得到一个包含第一个数字(50等)的列表,这让我非常困惑。

我从这个网站上的另一个人那里获取了这段代码,他想以与我相同的方式拆分列表,我不明白为什么它似乎对他们有用,但对我不起作用:text

python list split
1个回答
1
投票

您很可能使用了错误的分隔符。你确定你有两个空格吗?

最好使用默认的

split()
,它会分割成一个或多个空格:

stimuluslist = ['50 0.096453', '51 1.096453']
stimulustimes, stimulusamp = map(list, zip(*(i.split() for i in stimuluslist)))

# or
stimulustimes, stimulusamp = map(list, zip(*map(str.split, stimuluslist)))

输出:

# stimulustimes
['50', '51']

# stimulusamp
['0.096453', '1.096453']
© www.soinside.com 2019 - 2024. All rights reserved.