如果列表可以表示为字典,其中索引是键,内容是值,那么为什么不使用字典而不是列表呢?包括如果需要建立索引,那么只需将键作为索引放在列表中即可。同时,字典比列表更快。我在谷歌上搜索了这个主题,每个人都写列表是数据的有序集合,但是字典也可以通过按照您自己的方式排序和排序来按您需要的方式进行排序,所以问题是:您可以放弃列表并仅使用字典?它们更快=>更优化+访问它们并不比使用列表更方便,如果有人知道这里的技巧是什么,请给出答案
upd:这真的只是字典没有的列表方法的问题吗?但它们都可以在字典中实现
如果列表可以表示为字典,其中索引是键,内容是值,那么为什么不使用字典而不是列表呢?包括如果需要建立索引,那么只需将键作为索引放在列表中即可。同时,字典比列表更快。我在谷歌上搜索了这个主题,每个人都写列表是数据的有序集合,但是字典也可以通过按照您自己的方式排序和排序来按您需要的方式进行排序,所以问题是:您可以放弃列表并仅使用字典?它们更快=>更优化+访问它们并不比使用列表更方便,如果有人知道这里的技巧是什么,请给出答案
upd:这真的只是字典没有的列表方法的问题吗?但它们都可以在字典中实现
class TextHandler():
shortest_words = []
longest_words = []
def __init__(self, text = ""):
self.text = text.split()
def add_words(self, text):
self.text.append(text)
self.text = text.split()
def get_shortest_words(self):
min_len = 99999
for i in range (len(self.text)):
if min_len > len(self.text[i]):
min_len = len(self.text[i])
for i in range (len(self.text)):
if len(self.text[i]) == min_len:
self.shortest_words.append(self.text[i])
return self.shortest_words
我给出input这些值:
texthandler = TextHandler()
texthandler.add_words('The world will hold my trial for your sins')
texthandler.add_words('Never meant to see the sky never meant to live')
print(texthandler.get_shortest_words())
从第一次add_words调用开始,它my会将其添加到shortest_words,但在第二次调用时,它会删除这个并仅从第二个输入my添加,为什么它从第一个输入中删除以及如何保存它?totomy
PS我刚刚开始学习OOP,也许这是一个愚蠢的错误,但我并没有真正看到问题所在,不要太严厉地判断
pets = [('Hatiko', 'Parker', 'Wilson', 50),
('Rusty', 'Josh', 'King', 25),
('Fido', 'John', 'Smith', 28),
('Butch', 'Jake', 'Smirnoff', 18),
('Odi', 'Emma', 'Wright', 18),
('Balto', 'Josh', 'King', 25),
('Barry', 'Josh', 'King', 25),
('Snape', 'Hannah', 'Taylor', 40),
('Horry', 'Martha', 'Robinson', 73),
('Giro', 'Alex', 'Martinez', 65),
('Zooma', 'Simon', 'Nevel', 32),
('Lassie', 'Josh', 'King', 25),
('Chase', 'Martha', 'Robinson', 73),
('Ace', 'Martha', 'Williams', 38),
('Rocky', 'Simon', 'Nevel', 32)]
result = {}
for tup in pets:
if tup not in result:
result[tup[1], tup[2], tup[3]] = [tup[0]]
else:
result[tup[1], tup[2], tup[3]].append(tup[0])
print(result)
任务是获取主人的名字、姓氏和年龄,并将它们作为字典键,这有效,tup[0],也就是说,它使狗的名字成为字典值,但是该行
else:
result[tup[1], tup[2], tup[3]].append(tup[0])
不向字典键添加另一个值,为什么?
在示例中,Josh King 25 有几只狗,但他只保存了最后一只 - Lassie,我该如何解决此问题并添加所有狗?
我尝试通过追加来完成,因为该值是一个列表,可以通过追加将新值添加到其中,但它不会添加它们