为什么有时函数返回值的顺序在python中会发生变化?

2024-09-29 02:26:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个简单的函数从一个字符串中检索三个输出。当我想在其他函数中使用返回值时,顺序会改变。 例如:

def parsetrack2(trackstr):

    cardnumber, date = trackstr.split('=')
    expiryyear = date[0:2]
    expirymonth = date[2:4]

    return{cardnumber,expiryyear,expirymonth}

当我想把cardnumberexpiryyear传递给另一个函数时,有时顺序会改变,有时是对的?为什么?你知道吗

我应该如何改变它以防止这种变化?你知道吗


Tags: 函数字符串datereturn顺序defsplit返回值
2条回答

这是:

{item_1, item_2, ...}

实际上是一个集合文本(不是dict)。集合是没有重复的无序项集合。因此,返回项目的顺序是随机的。而是这样做

def func():
    return 1, 2, 3

>>> a, b, c = func()
>>> a
1
>>> b
2
>>> c
3

这是因为返回的是集合而不是列表/元组。(集合不保存元素的顺序,而列表/元组保存)

只需更改:

return{cardnumber,epxiryyear,epxirymonth} 

收件人:

return(cardnumber,epxiryyear,epxirymonth)

那么结果顺序将保持不变。你知道吗

相关问题 更多 >