如何根据 \n 拆分列表字符串
How to split a list string based on \n
我有一个这样的列表:
['Sehingga 8 Ogos 2021: Jumlah kes COVID-19 yang dilaporkan adalah 18,688 kes (1,262,540 kes)\n\nPecahan setiap negeri (Kumulatif):\n\nSelangor - 6,565 (465,015)\nWPKL - 1,883 (140,404)\nJohor - 1,308 (100,452)\nSabah -Lagi 1,379 (93,835)\nSarawak - 581 (81,328)\nNegeri Sembilan - 1,140 (78,777)\nKedah - 1,610 (56,598)\nPulau Pinang - 694 (52,368)\nKelantan - 870 (49,433)\nPerak - 861 (43,924)\nMelaka - 526 (35,584)\nPahang - 602 (29,125)\nTerengganu - 598 (20,696)\nWP Labuan - 2 (9,711)\nWP Putrajaya - 63 (4,478)\nPerlis - 6 (812)\n\n- KPK KKM']
如何根据\n的起止位置得到某个单词
预期输出:
1)Sehingga 8 Ogos 2021
2)Selangor - 6,565 (465,015)
3)WPKL - 1,883 (140,404)
4)Johor - 1,308 (100,452)
等等..
您可以使用 re
模块来完成任务:
import re
lst = [
"Sehingga 8 Ogos 2021: Jumlah kes COVID-19 yang dilaporkan adalah 18,688 kes (1,262,540 kes)\n\nPecahan setiap negeri (Kumulatif):\n\nSelangor - 6,565 (465,015)\nWPKL - 1,883 (140,404)\nJohor - 1,308 (100,452)\nSabah -Lagi 1,379 (93,835)\nSarawak - 581 (81,328)\nNegeri Sembilan - 1,140 (78,777)\nKedah - 1,610 (56,598)\nPulau Pinang - 694 (52,368)\nKelantan - 870 (49,433)\nPerak - 861 (43,924)\nMelaka - 526 (35,584)\nPahang - 602 (29,125)\nTerengganu - 598 (20,696)\nWP Labuan - 2 (9,711)\nWP Putrajaya - 63 (4,478)\nPerlis - 6 (812)\n\n- KPK KKM"
]
out = []
for v in lst:
for g in re.findall(r"^(.*?\(.*?\))\n", v, flags=re.M):
out.append(g.split(":")[0])
print(*out, sep="\n")
打印:
Sehingga 8 Ogos 2021
Selangor - 6,565 (465,015)
WPKL - 1,883 (140,404)
Johor - 1,308 (100,452)
Sabah -Lagi 1,379 (93,835)
Sarawak - 581 (81,328)
Negeri Sembilan - 1,140 (78,777)
Kedah - 1,610 (56,598)
Pulau Pinang - 694 (52,368)
Kelantan - 870 (49,433)
Perak - 861 (43,924)
Melaka - 526 (35,584)
Pahang - 602 (29,125)
Terengganu - 598 (20,696)
WP Labuan - 2 (9,711)
WP Putrajaya - 63 (4,478)
Perlis - 6 (812)
我有一个这样的列表:
['Sehingga 8 Ogos 2021: Jumlah kes COVID-19 yang dilaporkan adalah 18,688 kes (1,262,540 kes)\n\nPecahan setiap negeri (Kumulatif):\n\nSelangor - 6,565 (465,015)\nWPKL - 1,883 (140,404)\nJohor - 1,308 (100,452)\nSabah -Lagi 1,379 (93,835)\nSarawak - 581 (81,328)\nNegeri Sembilan - 1,140 (78,777)\nKedah - 1,610 (56,598)\nPulau Pinang - 694 (52,368)\nKelantan - 870 (49,433)\nPerak - 861 (43,924)\nMelaka - 526 (35,584)\nPahang - 602 (29,125)\nTerengganu - 598 (20,696)\nWP Labuan - 2 (9,711)\nWP Putrajaya - 63 (4,478)\nPerlis - 6 (812)\n\n- KPK KKM']
如何根据\n的起止位置得到某个单词
预期输出:
1)Sehingga 8 Ogos 2021
2)Selangor - 6,565 (465,015)
3)WPKL - 1,883 (140,404)
4)Johor - 1,308 (100,452)
等等..
您可以使用 re
模块来完成任务:
import re
lst = [
"Sehingga 8 Ogos 2021: Jumlah kes COVID-19 yang dilaporkan adalah 18,688 kes (1,262,540 kes)\n\nPecahan setiap negeri (Kumulatif):\n\nSelangor - 6,565 (465,015)\nWPKL - 1,883 (140,404)\nJohor - 1,308 (100,452)\nSabah -Lagi 1,379 (93,835)\nSarawak - 581 (81,328)\nNegeri Sembilan - 1,140 (78,777)\nKedah - 1,610 (56,598)\nPulau Pinang - 694 (52,368)\nKelantan - 870 (49,433)\nPerak - 861 (43,924)\nMelaka - 526 (35,584)\nPahang - 602 (29,125)\nTerengganu - 598 (20,696)\nWP Labuan - 2 (9,711)\nWP Putrajaya - 63 (4,478)\nPerlis - 6 (812)\n\n- KPK KKM"
]
out = []
for v in lst:
for g in re.findall(r"^(.*?\(.*?\))\n", v, flags=re.M):
out.append(g.split(":")[0])
print(*out, sep="\n")
打印:
Sehingga 8 Ogos 2021
Selangor - 6,565 (465,015)
WPKL - 1,883 (140,404)
Johor - 1,308 (100,452)
Sabah -Lagi 1,379 (93,835)
Sarawak - 581 (81,328)
Negeri Sembilan - 1,140 (78,777)
Kedah - 1,610 (56,598)
Pulau Pinang - 694 (52,368)
Kelantan - 870 (49,433)
Perak - 861 (43,924)
Melaka - 526 (35,584)
Pahang - 602 (29,125)
Terengganu - 598 (20,696)
WP Labuan - 2 (9,711)
WP Putrajaya - 63 (4,478)
Perlis - 6 (812)