我有一个文件wordTopic.txt。文件格式为:
208:4 208:1 1049:2 3059:15 73684:10 715:15 6100:7 1129:15 1276:2 722:6 4809:1 726:15 6456:5 3703:10 1634:11 14342:13 13785:15 8930:6 61497:11 5435:15 327:1 327:1 228:8 7186:14 10229:2 13787:15 14683:3 437:7 1232:7 3272:15 127:15 9731:0 2367:6 957:8 957:8 810:15 11952:5 18459:5 35248:6 24209:6 19155:3 364:1 364:1 2550:15 7169:15 10939:15 35249:11 4039:8 21608:13 2612:7 1006:15 1113:15 87090:14 1423:8 2180:3 1375:15 270:9 2309:2 533:11 9204:15 660:16 17071:13
上面是文件的一行,每行的长度不同
wordid:topicid wordid:topicid wordid:topicid........
我只希望将主题ID存储在数组中。如何获取主题id(即)如何在冒号后存储数字。主题ID仅为0到19。
答案 0 :(得分:1)
在Java中,您可以按照以下方式执行此操作:
String text= "208:4 208:1 1049:2 3059:15 73684:10 715:15 6100:7 1129:15";
List<Integer> topicIds = new ArrayList<Integer>();
for (String str: text.split(" ")) {
topicIds.add(Integer.parseInt(str.split(":")[1]));
}
答案 1 :(得分:0)
你的问题不是很清楚,但我会在python中做这样的事情:
假设这是一行,您可以阅读:
result_list = []
for element in line.split():
result_list.append(element.split(":")[-1]
这样主题ID将存储在一个列表中(像python中的结构一样的数组)
答案 2 :(得分:0)
您可以阅读topicid
这样的行:
topic_ids = [el.split(':')[1] for el in row.split()]
答案 3 :(得分:0)
你可以简单地使用正则表达式来解决你的问题(在python中)。
import re
text='208:4 208:1 1049:2 3059:15 73684:10 715:15 6100:7 1129:15 1276:2 722:6 4809:1 726:15 6456:5 3703:10 1634:11 14342:13 13785:15 8930:6 61497:11 5435:15 327:1 327:1 228:8 7186:14 10229:2 13787:15 14683:3 437:7 1232:7 3272:15 127:15 9731:0 2367:6 957:8 957:8 810:15 11952:5 18459:5 35248:6 24209:6 19155:3 364:1 364:1 2550:15 7169:15 10939:15 35249:11 4039:8 21608:13 2612:7 1006:15 1113:15 87090:14 1423:8 2180:3 1375:15 270:9 2309:2 533:11 9204:15 660:16 17071:13'
lst=[x[1:] for x in re.findall(":[0-9]*", text)]