[英]Finding and replacing element in Python
我是python編程的新手,想知道如何遍歷下面的元素,然后替換字符串,並使我的數據列表如下所示。 先感謝您。
[{u 'name': u 'xxx',
u 'data': [
[u 'last_00_10', x],
[u 'last_11_20', x],
[u 'last_21_30', x],
],
u 'id': x }]
替換字符串后,我希望它看起來像下面
[{u 'name': u 'xxx',
u 'data': [
[u '0-10 Days', x],
[u '11-20 Days', x],
[u '21-30 Days', x],
],
u 'id': x }]
您有一個包含字典的列表。 字典中的“數據”鍵包含一個列表。 您要遍歷該列表,並用不同的文本替換列表中的第一項。
x = 1
your_data = [{u'name': u'xxx',
u'data': [
[u'last_00_10', x],
[u'last_11_20', x],
[u'last_21_30', x],
],
u'id': x }]
for item in your_data[0]['data']:
item_split = item[0].split('_')
item[0] = str(int(item_split[1])) + '-' + str(int(item_split[2])) + ' Days'
print(your_data)
這給出:
[{'id': 1, 'name': 'xxx', 'data': [['00-10 Days', 1], ['11-20 Days', 1], ['21-30 Days', 1]]}]
首先,為什么將1個字典放在列表中? 您會在其中放入其他字典嗎?,但是我將使用您的結構。.您可以執行以下操作(我將列表L命名為L):和x =“”起作用。(這是一個未定義的變量。
x = ""
L = [
{
u'name': u'xxx',
u'data': [
[u'last_00_10', x],
[u'last_11_20', x],
[u'last_21_30', x],
],
u'id': x
}
]
newData = [u"0-10 Days", u'11-20 Days', u'21-30 Days']
for i in range(len( L[0][u'data'] )):
L[0][u'data'][i][0] = newData[i]
它會根據您的需要工作。
我更正了代碼中u'string'之間的空格
這幾乎可以滿足您的要求:
import re
x = 42
stuff = [{u'name': u'xxx',
u'data': [
[u'last_00_10', x],
[u'last_11_20', x],
[u'last_21_30', x],
],
u'id': x }]
for row in stuff[0]['data']:
row[0] = re.sub(r'last_(\d+)_(\d+)',
r'\1-\2 Days', row[0])
print(row)
給出:
['00-10 Days', 42]
['11-20 Days', 42]
['21-30 Days', 42]
如果您想要一位數字(“ 00”至“ 0”),則需要做更多的工作。
def subit(m):
f1, f2 = m.groups()[:2]
return "%d-%d Days" % (int(f1), int(f2))
for row in stuff[0]['data']:
row[0] = re.sub(r'last_(\d+)_(\d+)', subit, row[0])
print(row)
給出:
['0-10 Days', 42]
['11-20 Days', 42]
['21-30 Days', 42]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.