在列表中查找值的元组
我有一个元组的列表,如下所示:
mylist = [ (user1, 23, 32), (user1, 23, 34), (user3, 34, 34), (user2, 34, 45), (user1, 45,23),(user2, 56, 56), (user5, 4,4)]
我需要找出每个用户的平均时间。我的问题是,我不知道有多少个用户以及他们的值是什么。所以我无法进行
for item in mylist:
if item[0] == 'user1':
new_list.append( ( item1, item2))
我该如何获取像这样的值
user1 = [ (23,32), (23,34), (45,23)]
user2 = [(34, 45), (56,56)]
usre3 = [(34,34)]
谢谢
5 个回答
0
这段代码的意思是……
首先,它定义了一些变量,这些变量就像是用来存储信息的小盒子。你可以把它们想象成一个个标签,里面放着不同的数据。
接下来,代码中有一些操作,这些操作就像是给这些小盒子里的东西进行处理。比如说,你可能会把一个盒子里的东西加上一个数字,或者把两个盒子里的东西合在一起。
最后,代码会输出一些结果,这就像是把处理后的信息展示出来,让你看到最终的结果是什么。
总之,这段代码就是在做一些数据的存储和处理,最后把结果给你看。希望这样的解释能让你更容易理解!
from collections import defaultdict
h=defaultdict(list)
mylist = [ ("user1", 23, 32), ("user1", 23, 34), ("user3", 34, 34), ("user2", 34, 45), ("user1", 45,23),("user2", 56, 56), ("user5", 4,4)]
for item in mylist:
h[item[0]].append(item[1:])
print h
2
显然,你需要一个字典,对吧?一种方法可以这样做:
results = {}
for user, val1, val2 in mylist:
if user not in results:
results[user] = []
results[user].append((val1, val2))
不过,得益于从2.5版本开始引入的 collections.defaultdict
,我们可以把这个过程简化:
import collections
results = collections.defaultdict(list)
for users, val1, val2 in mylist:
results[user].append((val1, val2))
4
在编程中,有时候我们需要让程序根据特定的条件来做不同的事情。这就像是给程序设定了一些“规则”。如果满足这些规则,程序就会执行某些操作;如果不满足,程序就会执行其他操作。
比如说,想象一下你在做一个游戏,游戏里有一个角色需要根据玩家的选择来行动。如果玩家选择“攻击”,角色就会攻击;如果选择“防御”,角色就会防御。这里的“选择”就是条件,而角色的行动就是根据这些条件来决定的。
在代码中,我们通常使用“如果”这样的语句来实现这个功能。比如说:
>>> from collections import defaultdict >>> d = defaultdict(list) >>> for user, *items in mylist: d[user] += items, >>> d defaultdict(<class 'list'>, {'user5': [[4, 4]], 'user2': [[34, 45], [56, 56]], 'user3': [[34, 34]], 'user1': [[23, 32], [23, 34], [45, 23]]})
这段代码的意思是:如果条件成立,就执行某个操作;如果条件不成立,就执行另一个操作。这种方式让程序变得更加灵活,可以根据不同的情况做出不同的反应。