请问,为什么两次列表相加的顺序不一样,会导致最终运行结果的不一样
题主的问题是由于列表往前加和往末尾加不一致导致的。
①第一种情况:
假设jieba.lcut()第一次返回['a','b','c'],第二次返回['a','b','c'],两个列表长短一致的情况下:
列表1=列表1+列表2 就等于:['a','b','c','a','b','c',]
列表1=列表2+列表1 就等于:['a','b','c','a','b','c',]
完全一样,没有问题。
②第二种情况:
假设jieba.lcut()第一次返回['a','b'],第二次返回['a','b','c'],两个列表长短不一致的情况下:
列表1=列表1+列表2 就等于:['a','b','a','b','c']
列表1=列表2+列表1 就等于:['a','b','c','a','b']
就不一样了。
测试代码如下:
# 双数返回['a', 'b'],奇数返回 ['a', 'b', 'c']
def new_list(flag):
if flag % 2 == 0:
return ['a', 'b']
else:
return ['a', 'b', 'c']
a_list = []
for i in range(0, 2):
words = new_list(i)
a_list = a_list + words
print(a_list)
a_list2 = []
for i in range(0, 2):
words2 = new_list(i)
a_list2 = words2 + a_list2
print(a_list2)
如有帮助,请点击采纳,谢谢。
python列表采用的是数据结构中的顺序表 用+运算符来拼接列表就是这样的 你可以看作是python的特性
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
>>> b+a
[4, 5, 6, 1, 2, 3]
列表的加法a + b 就可以理解成将列表b中的元素一个一个添加到a的末尾,所有反过来b+a就是将列表a中的元素一个一个添加到b的末尾,所以得到的结果是不一样的。
不知道你这个问题是否已经解决, 如果还没有解决的话:有帮助的话,请点采纳~
在 Python 中,列表是可变对象,当两个列表相加时,会创建一个新的列表,并将原来的两个列表的元素按照一定的顺序组合起来。如果两个列表的元素顺序不同,那么最终组合成的新列表的元素顺序也会不同。看下面两个例子的列表:
a = [1, 2, 3]
b = [4, 5, 6]
如果我们将上述两个列表相加,顺序为 a + b,那么得到的新列表为 [1, 2, 3, 4, 5, 6]。但是如果我们将它们相加,顺序为 b + a,那么得到的新列表为 [4, 5, 6, 1, 2, 3]。因此,列表相加的顺序确实可能会影响最终运行结果的顺序。