python删除列表中的字符_我想删除python列表中的某些字符

3 个答案:

答案 0 :(得分:3)

您不必将列表转换为字符串(这将是最糟糕的方法之一)。您可以简单地使用列表推导,例如:

>>> my_list = [

('11 August 1902\xa0(1902-08-11)Paris, France', None),

('29 July 1991(1991-07-29) (aged\xa088)Paris, France', None),

('\xa0France', None),

('\xa0French Army', None),

('1921-1959', None),

('General de brigade', None),

('Mobile Group 2Mobile Group 1Operational Group North-West', None),

('World War IIFirst Indochina War*Battle of Dien Bien Phu', None)]

>>> [t[0].replace('\xa0', ' ') for t in my_list]

['11 August 1902 (1902-08-11)Paris, France', '29 July 1991(1991-07-29) (aged 88)Paris, France', ' France', ' French Army', '1921-1959', 'General de brigade', 'Mobile Group 2Mobile Group 1Operational Group North-West', 'World War IIFirst Indochina War*Battle of Dien Bien Phu']

这将在每个内部元组中使用第一个元素(因此消除了第二个元素None),并将其中的任何\xa0个字符替换为一个空格(" ")。

答案 1 :(得分:0)

这里是如何实现此操作的(不好的)示例……但是,更优雅的方法是将字符串编码为ISO 8859-1(我认为这是\ xa0的来源)。

my_list = [('11 August 1902\xa0(1902-08-11)Paris, France', None),

('29 July 1991(1991-07-29) (aged\xa088)Paris, France', None),

('\xa0France', None),

('\xa0French Army', None),

('1921-1959', None),

('General de brigade', None),

('Mobile Group 2Mobile Group 1Operational Group North-West', None),

('World War IIFirst Indochina War*Battle of Dien Bien Phu', None)]

my_new_list = []

for my_item in my_list:

tuple_first = my_item[0]

tuple_first = tuple_first.replace('\xa0', ' ') # I think really this should be

# encoded with the ISO 8859-1 and

# in this encoding \xa0 is a non

# breaking space... but for now

# I just replace it with a space char

my_new_list.append(tuple_first)

这是输出(每项新行)

['11 August 1902 (1902-08-11)Paris, France',

'29 July 1991(1991-07-29) (aged 88)Paris, France',

'France',

'French Army',

'1921-1959',

'General de brigade',

'Mobile Group 2Mobile Group 1Operational Group North-West',

'World War IIFirst Indochina War*Battle of Dien Bien Phu'

]

答案 2 :(得分:0)

这是查看Selcuk提供的列表理解的另一种方法。

注意:接受Selcuk的解决方案,因为它是正确的。我刚刚发布的内容是为了展示与for循环相比,列表理解的工作原理/外观

my_list = [('11 August 1902\xa0(1902-08-11)Paris, France', None),

('29 July 1991(1991-07-29) (aged\xa088)Paris, France', None),

('\xa0France', None), ('\xa0French Army', None), ('1921-1959', None),

('General de brigade', None), ('Mobile Group 2Mobile Group 1Operational Group North-West', None),

('World War IIFirst Indochina War*Battle of Dien Bien Phu', None)]

new_list = []

for t in my_list:

t = t[0].replace('\xa0',' ')

new_list.append(t)

输出:

print (new_list)

['11 August 1902 (1902-08-11)Paris, France', '29 July 1991(1991-07-29) (aged 88)Paris, France', ' France', ' French Army', '1921-1959', 'General de brigade', 'Mobile Group 2Mobile Group 1Operational Group North-West', 'World War IIFirst Indochina War*Battle of Dien Bien Phu']

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值