簡體   English   中英

如何遍歷python 2D列表並刪除/替換特定列中的字符?

[英]How can I iterate through a python 2D list and delete/replace characters from a specific column?

我有以下2D清單

data = [['2013-02-03', 'London', 'miles', '25'], ['2013-02-03', 'Newcastle', 'miles', '25'], ['2013-02-03', 'Birmingham', 'miles', '62']]

我需要能夠刪除列中的所有'' ,例如下面的最后一列,以便我可以將2D列表傳遞給文本文件中的javascript函數。

data = [['2013-02-03', 'London', 'miles', 25], ['2013-02-03', 'Newcastle', 'miles', 25], ['2013-02-03', 'Birmingham', 'miles', 62]]

我有一個函數,可以在單個值上獲得結果

r = "['2013-02-03', 'London', 'miles', '25']"


def rreplace(s, old, new, occurrence):
    li = s.rsplit(old, occurrence)
    return new.join(li)

    rreplace(p, "'", '', 2)

"['2013-02-03', 'Feltham', 'less_than_one_day', 25],"

誰能建議一種更好的方法來達到這個結果?

我已經嘗試了多種使用方式:對於循環,map / lambda和iter,我可以遍歷列表或更改單個列表中的元素,但不能同時執行兩個操作並輸出結果。

只需像Python那樣處理值列表:

for row in data:
    row[-1] = int(row[-1])

這會將data嵌套列表中的每個最后一個元素替換為其等效的整數。

接下來,使用json模塊將其轉換為有效的JavaScript:

import json

r = json.dumps(data)

JSON畢竟是JavaScript的子集。

快速演示:

>>> data = [['2013-02-03', 'London', 'miles', '25'], ['2013-02-03', 'Newcastle', 'miles', '25'], ['2013-02-03', 'Birmingham', 'miles', '62']]
>>> for row in data:
...     row[-1] = int(row[-1])
... 
>>> data
[['2013-02-03', 'London', 'miles', 25], ['2013-02-03', 'Newcastle', 'miles', 25], ['2013-02-03', 'Birmingham', 'miles', 62]]
>>> import json
>>> json.dumps(data)
'[["2013-02-03", "London", "miles", 25], ["2013-02-03", "Newcastle", "miles", 25], ["2013-02-03", "Birmingham", "miles", 62]]'

暫無
暫無

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

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