簡體   English   中英

如何使用包含字符位置的字典在Python中切片?

[英]How to slice a string in Python using a dictionary containing character positions?

我有一個包含字符串中不同字段的字符位置的字典。 我想用這些信息來切割字符串。 我不太確定如何最好地解釋這一點,但這個例子應該說清楚:

輸入:

mappings = {'name': (0,4), 'job': (4,11), 'color': (11, 15)}
data = "JohnChemistBlue"

期望的輸出:

{'name': 'John', 'job': 'Chemist', 'color': 'Blue'}

請忽略這樣一個事實:工作,顏色和名字的字符長度明顯不同。 我正在解析固定長度的字段,但為了說明目的將其簡化。

>>> dict((f, data[slice(*p)]) for f, p in mappings.iteritems())
{'color': 'Blue', 'job': 'Chemist', 'name': 'John'}
dict([(name, data[range[0]:range[1]]) for name, range in mappings.iteritems()])
>>> dict([(k, data[ mappings[k][0]:mappings[k][1] ]) for k in mappings])
{'color': 'Blue', 'job': 'Chemist', 'name': 'John'}

或使用生成器而不是列表(可能更高效):

>>> dict(((k, data[ mappings[k][0]:mappings[k][1] ]) for k in mappings))
{'color': 'Blue', 'job': 'Chemist', 'name': 'John'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM