嘿,这是我的第一篇文章,我对python /编码非常陌生。 我有这个问题,我不太清楚如何解释它。 基本上我有这个txt文件,其中包含大量的行"字符/数字列表" 喜欢" 5,0,10和#34;和" $,20,,5"我有一个代码块,它基本上遍历每一行中的每个元素,并返回0表示空格,-1表示非数字,如果元素是数字,则只返回数字。现在,问题是我现在必须以某种方式编辑那些数字行并用返回值(0和-1)替换空格和非数字,然后在python中吐出来,坦率地说我太多了编码菜鸟要知道使用什么功能。我有这个心灵障碍,我确切地知道我需要做什么,但我不知道如何去做。我需要以某种方式将这些返回的值附加到具有原始数字的列表中,减去空格和非数字,并且在它们的位置上有0&s;和-1' s。再次抱歉,这是我的第一篇文章,可能格式非常糟糕,它的格式非常糟糕。
def parseVote(s):
s = s.strip()
if len(s) == 0:
return 0
elif s.isdigit() == True:
return s
else:
return -1
print(parseVote())
答案 0 :(得分:0)
我认为这符合您的要求。这可能是一个比使用条带函数更长的方法,但我认为我会简单。主要的是循环列表列表,以及每个列表中每个元素的嵌套循环。我注意到,如果数字为0(结果0),则元素为空(结果0)时得到相同的结果。可能是个问题。
with open( r'C:\Program Files\s.txt' ) as s_file:
s = []
for line in s_file:
stripped_line = line.strip('\n')
s.append( stripped_line.split(',') )
s_file.close( )
#s = [['5','0','10'],['$','20','','5']]
def parseVote(s):
new_s = []
for s_list in s:
s_transform = []
for elem in s_list:
if len(elem) == 0:
s_transform.append( 0 )
elif elem.isdigit( ) == True:
s_transform.append( elem )
else:
s_transform.append( -1 )
new_s.append( s_transform )
return new_s
new_s = parseVote(s)
print(new_s)
输出
[['5', '0', '10'], [-1, '20', 0, '5']]