下面是我的代码:
UserList = [['person1', '25yo','70kg','170cm'],[ 'person2','21yo','54kg','164cm']]
ListStrUser = []
for ListStrUser in UserList:
ListStrUser = GetNum(UserList)
def GetNum(anyList):
for i in range(1,len(anyList)):
anyList[i] = re.sub (r'D',"", str(anyList[i]))
return anyList
print(ListStrUser)
# # # # # # # #预期结果:
[['person1', '25','70','170'],[ 'person2','21','54','164']]
你离亚洲不远了。但我不能对伊森的回答补充太多这就是为什么我很困惑为什么它被否决了。如果你想要一个可以处理所有工作而不需要另一个for循环的函数,那么下面的函数就可以做到这一点:
import re
UserList = [['person1', '25yo','70kg','170cm'],[ 'person2','21yo','54kg','164cm']]
def get_num(any_list):
# includes the for loop to iterate through the list of lists
list_str_user = []
for inner_list in any_list:
temp_list = [inner_list[0]]
for i in range(1,len(inner_list)):
temp_list.append(re.sub(r'D', '', str(inner_list[i])))
list_str_user.append(temp_list)
return list_str_user
print(get_num(UserList))
输出:
[['person1', '25', '70', '170'], ['person2', '21', '54', '164']]
因此不需要在函数外使用for循环。
import re
def GetNum(anyList):
for i in range(1, len(anyList)):
anyList[i] = re.sub(r'D[^0-9]',"",str(anyList[i]))
return anyList
userList = [['person1','25yo','70kg','170cm'],['person2','21yo','54kg','164cm']]
for ListStrUser in userList: ListStrUser = GetNum(ListStrUser)
print("Output : ", userList)
输出:[['person1', '25', '70', '170'], ['person2', '21', '54', '164']]
from @Guy 's comment:
UserList = [['person1', '25yo','70kg','170cm'],[ 'person2','21yo','54kg','164cm']]
import re
def GetNum(anyList):
for i in range(1,len(anyList)):
anyList[i] = re.sub (r'D',"", str(anyList[i]))
return anyList
ListStrUser = []
for ListStr in UserList:
ListStrUser.append(GetNum(ListStr))
print(ListStrUser)
为
[['person1', '25', '70', '170'], ['person2', '21', '54', '164']]
尝试以下代码:
user_list = [['person1', '25yo','70kg','170cm'],[ 'person2','21yo','54kg','164cm']]
list_str_user = []
def get_num(any_list):
updated_list = [any_list[0]]
for i in range(1,len(any_list)):
updated_list.append(re.sub(r'D',"", str(any_list[i])))
return updated_list
for user in user_list:
list_str_user.append(get_num(user))
print(list_str_user)
注意,我还更新了变量和函数的命名以及函数之间的间距,以符合pep8。在编写Python代码时请记住这一点。
函数也应该在使用它们之前定义,否则Python不会找到它们。
我还在get_num
中创建了updated_list
变量,不改变函数中的参数从来都不是一个坏主意。