从列表中的项目中删除元素

时间:2018-02-03 13:14:33

标签: python arrays

如何从列表中的项目中删除元素?

通常当我从列表中删除某些内容时,我会这样做:

df = [1,2,3,'name']
df.remove('name') #output is [1,2,3]

但是如果我的参赛作品不是常规的话会怎么样,例如:

df = [1,2,3, 'name 123']

我想摆脱" _123"?

4 个答案:

答案 0 :(得分:1)

我没有抓住你想要做的事情,但假设有你提供给我们的清单:

df = [1,2,3,'name 123']

并且您只想删除' 123'在特定的位置,您可以这样做:

df[3] = df[3].replace(" 123","")

答案 1 :(得分:1)

最简单的选择是列表理解 - 类似这样:

[str(x).replace('123', '') for x in df]

(在所有项目结束时修剪'123'。

对于更复杂的模式匹配,您可能需要使用正则表达式。

答案 2 :(得分:1)

您可以使用str.split()功能执行此操作。它允许您使用指定的分隔符将字符串分隔成数组。例如,"1 4 5 hello".split(" ")会返回["1", "4", "5", "hello"]

因此,只需获得"name"即可:

df[3] = df[3].split(" ")[0]

因为df[3].split(" ")返回["name", "123"],其第0个索引是您想要的"name"

答案 3 :(得分:1)

列表理解与dayfirst=True相结合是一种方式:

df['accepted_date3'] = pd.to_datetime(df['accepted_date'], dayfirst=True)
print (df)
  accepted_date accepted_date3
0    2017-01-02     2017-01-02
1    07-08-2017     2017-08-07
2    20-03-2017     2017-03-20
3    2017-01-04     2017-01-04