解码 python 中的列表
Decoding a list in python
我在 python
中有一个列表
['Deals', "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe\\xc3\\xa9', 'Beverages', 'Side Lines', 'Snack Time']
我想像 "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals','McCafe\\xc3\\xa9'
一样解码为 'What's New, la carte & Value Meals,McCafe'
所需的输出将没有任何编码 (\\x98)
期望的输出:
['Deals', "What's New", 'la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe', 'Beverages', 'Side Lines', 'Snack Time']
您可以使用内置模块,re
:
import re
l = ['Deals', "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe\\xc3\\xa9', 'Beverages', 'Side Lines', 'Snack Time']
l = [re.sub(r'x\S\d',' ',s).replace('\','').strip() for s in l]
print(l)
输出:
['Deals', "What's New", 'la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe', 'Beverages', 'Side Lines', 'Snack Time']
re.sub(r'x\S\d',' ',s)
将 return 字符串 s
与此模式中的每 3 个相邻字符:
x
, any character that's not a space
, number
替换为 space。
我在 python
中有一个列表['Deals', "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe\\xc3\\xa9', 'Beverages', 'Side Lines', 'Snack Time']
我想像 "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals','McCafe\\xc3\\xa9'
一样解码为 'What's New, la carte & Value Meals,McCafe'
所需的输出将没有任何编码 (\\x98)
期望的输出:
['Deals', "What's New", 'la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe', 'Beverages', 'Side Lines', 'Snack Time']
您可以使用内置模块,re
:
import re
l = ['Deals', "\\xe2\\x98\\x85What\\\'s New\\xe2\\x98\\x85", '\\xc3\\x80la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe\\xc3\\xa9', 'Beverages', 'Side Lines', 'Snack Time']
l = [re.sub(r'x\S\d',' ',s).replace('\','').strip() for s in l]
print(l)
输出:
['Deals', "What's New", 'la carte & Value Meals', 'Crispy Chicken', 'Share Box', 'Happy Meals', 'Desserts', 'McCafe', 'Beverages', 'Side Lines', 'Snack Time']
re.sub(r'x\S\d',' ',s)
将 return 字符串 s
与此模式中的每 3 个相邻字符:
x
, any character that's not a space
, number
替换为 space。