Python 3.x 为什么我会得到一张空名单?
所以我试着用两个数字列表;对第一个列表进行切片,反转切片列表的顺序,然后将其添加到第二个列表并打印新列表。当我运行并将所有输入放入时,我只得到一个空列表。你们能帮我找出哪里出了问题吗Python 3.x 为什么我会得到一张空名单?,python-3.x,empty-list,Python 3.x,Empty List,所以我试着用两个数字列表;对第一个列表进行切片,反转切片列表的顺序,然后将其添加到第二个列表并打印新列表。当我运行并将所有输入放入时,我只得到一个空列表。你们能帮我找出哪里出了问题吗 def transform(list1,list2,r1,r2): rev_list=[] list1='' list2='' l1=list1.split(',') l2=list2.split(',') slice
def transform(list1,list2,r1,r2):
rev_list=[]
list1=''
list2=''
l1=list1.split(',')
l2=list2.split(',')
slice_l1=l1[r1:r2]
for i in reversed(slice_l1):
rev_list.extend(i)
new_list=l2+rev_list
return new_list
def main():
user_input_l1=input("Please enter a list of numbers separated by a comma (,): ")
user_input_l2=input("Please enter a second list of numbers separated by a comma (,): ")
user_input_r1=int(input("Please enter the beginning index for slice: "))
user_input_r2=int(input("Please enter the ending index for slice: "))
new_list=transform(user_input_l1,user_input_l2,user_input_r1,user_input_r2)
print("Your new list is",new_list)
print(type(new_list))
if __name__=="__main__":
main()
提前谢谢大家。有几件事:
list1='
和list2='
将您的输入转换为空字符串'
。我相信这不是你的意图,所以可以删除
然后,当您输入数字时,它们以元组的形式出现,而元组没有.split()
方法。我对这些行进行了更改,将l1
和l2
转换为列表形式
另外,如果您只在列表中添加一个数字,请使用.append()
而不是.extend()
。或者,如果您想使用.extend()
,您可以给它一个完整的列表作为参数
试试这个:
def transform(list1,list2,r1,r2):
rev_list=[]
l1= [item for item in list1]
l2= [item for item in list2]
slice_l1=l1[r1:r2]
rev_list.extend(reversed(slice_l1))
new_list=l2+rev_list
return new_list
所以我想出了如何实现我的目标:
def transform(list1,list2,r1,r2):
rev_list=[]
l1=list(list1)
l2=list(list2)
slice_l1=l1[r1:r2]
rev_list.extend(reversed(slice_l1))
l2.extend(rev_list) # Extends l2 by rev_list
return l2
我在用户输入上使用eval()方法,将用户输入的字符串转换为元组,然后在该元组上使用list()方法将其转换为列表
再次感谢snookieordie的帮助。您没有显示您的输入。尝试查找最短的输入并添加其输出。另外,请缩进最后一个代码块。感谢snookieordie的帮助。你的解决方案对我不起作用,但它确实给了我最终解决问题所需的想法。谢谢你的帮助