簡體   English   中英

過濾二維數組/列表並替換 python 中的值

[英]Filtering a 2D array/list and replacing a value in python

如果用戶名已經存在,我想替換這個二維數組中的一個數字。

[["bob man", "0"], ["bill kill", "5"], ["nick", "5"]]

例如,當我收到用戶名“bob man”時,新號碼為 44。我想搜索我的數組並檢查該用戶名是否存在,並替換該號碼。 如果它不存在,我想把它 append 放到數組中。

[["bob man", "44"], ["bill kill", "5"], ["nick", "5"]]

有沒有更好的存儲方法? 我是 python 的新手,像這樣的簡單東西似乎比 js 等對象復雜得多。

如果您想保持順序,可以使用 numpy 結構化數組:

a = np.array([("bob man", 0), ("bill kill", 5), ("nick", 5)], dtype=[('name', 'U10'), ('value', 'i4')])
new_entry = np.array([('bob man', 44)], dtype=[('name', 'U10'), ('value', 'i4')])

if new_entry['name'] in a['name']:
  a['value'][a['name']==new_entry['name']] = new_entry['value']
else:
  a = np.append(a, new_entry)

我希望它比字典更快,特別是如果您想添加多個條目,您可以將它們全部包含在new_entry中並稍微更改代碼以檢查數組方式以更快。

暫無
暫無

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

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