我正在尝试拆分列表条目,它们都具有类似“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
您很可能使用了错误的分隔符。你确定你有两个空格吗?
最好使用默认的
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']