有什么方法可以将元组用作架子中的钥匙?(蟒蛇)

5 python shelve

我想使用Python中的shelve模块使用元组(1,2,3)作为键.我可以用词典做到这一点:

d = {}
d[(1,2,3)] = 4
Run Code Online (Sandbox Code Playgroud)

但如果我试着搁置:

s = shelve.open('myshelf')
s[(1,2,3)] = 4
Run Code Online (Sandbox Code Playgroud)

我得到:"TypeError:期望键,字符串或整数对象,发现元组"

有什么建议?

Ned*_*der 7

如何使用元组的repr():

s[repr((1,2,3))] = 4
Run Code Online (Sandbox Code Playgroud)


Ale*_*lli 7

按照文档,

架子中的值(不是键!)可以是基本上任意的Python对象

我强调:货架钥匙必须是字符串,句号.所以,你需要把你的元组变成一个str; 取决于你在元组中的含义repr,一些separator.join,酸洗,编组等可能会有效地用于此目的.