【发布时间】:2020-05-25 06:44:47
【问题描述】:
我目前有一个我遍历的字符串列表..
string1 = 'CRUC1AL 34 6 5 0 23 75.6 11 89.6 3 1.39 robiin 40 15 8 2 26 78.0 14 89.5 4 1.36 Surreal 31 14 6 2 25 68.3 6 79.8 2 1.17 MiGHTYMAX 24 8 7 2 26 78.0 -2 57.5 -2 1.02 Thomas 25 17 10 3 28 70.7 -3 77.8 -2 0.95'
string2 = 'Lucky 27 6 8 4 27 68.3 0 71.0 4 1.01 kiR 27 18 6 0 36 58.5 -9 77.6 1 0.92 kwezz 29 11 6 2 32 53.7 -3 77.2 -1 0.91 scott 20 6 5 2 26 56.1 -6 50.0 -2 0.75 cleMeNz0 25 15 5 3 33 48.8 -8 71.9 -7 0.74'
我将所有“,”替换为“”,这样我就可以遍历它们。现在我需要能够将名称放入 1 个列表和数字中。名称包含字母、数字、标点符号和破折号..
player_names1 = []
player_names2 = []
team1_list = []
team2_list = []
for i in string1:
if i.isalpha() or i.endswith('.') or i.isupper():
player_names1.append(i)
elif not i.isalpha() and not i.endswith('.') and not i.isupper():
team1_list.append(i)
for i in string2:
if i.isalpha() or i.endswith('.') or i.isupper():
player_names2.append(i)
elif not i.isalpha() and not i.endswith('.') and not i.isupper():
team2_list.append(i)
我考虑过使用索引或查找函数,但我不想为了做到这一点而对我的 if 语句创建一个新的而不是序列。 这种方法可以用 .在前一个字符串中并将 CRUC1AL 放入名称列表中,但现在有一个末尾带有 0 的字符串,它正试图将其附加到我的统计列表中。我也试过了。。
if not i.isdigit() and not i.startswith('-'):
player_names1.append(i)
print(i)
#= CRUC1AL 75.6 89.6 1.39
else:
team1_list.append(i)
但这会将花车和玩家名称附加在一起。我已经尝试搜索修复程序,但是我找不到任何可以分离浮点值的具体内容......所以我需要能够将浮点数、整数和负数与可能包含 -'s、.'s 和字母的名称。有什么建议?找到产生错误的完整代码here.. 此外,任何关于更优雅地编写我的代码的提示都会很棒!
【问题讨论】:
-
你的解释不清楚。熊猫与您的问题有何关系?请显示预期输出的示例。
-
数据从何而来?你有没有注意到它遵循一个模式?
-
@DYZ 94,50,20,6,78,388.4,16,386.6,10,6.07,16 是示例输出。我获取这些值,可以制作一个包含每个玩家的姓名和统计数据的字典,然后我可以只获取他们的统计数据的总和并将它们写入 CSV 文件进行分析。我遇到的问题的数据来自'hltv.org/stats/matches/mapstatsid/98497/…'
标签: python string pandas numpy loops