我试图在python中做这样的事情:
df
Enumeration.area County Household.members id
(dbl) (fctr) (dbl) (chr)
1 1 a 4 1 a 4
2 1 a 6 1 a 6
3 1 b 5 1 b 5
4 2 a 8 2 a 8
5 2 a 10 2 a 10
6 2 a 9 2 a 9
7 3 b 3 3 b 3
8 3 a 4 3 a 4
9 3 b 3 3 b 3
df %>% distinct(id)
Enumeration.area County Household.members id
(dbl) (fctr) (dbl) (chr)
1 1 a 4 1 a 4
2 1 a 6 1 a 6
3 1 b 5 1 b 5
4 2 a 8 2 a 8
5 2 a 10 2 a 10
6 2 a 9 2 a 9
7 3 b 3 3 b 3
8 3 a 4 3 a 4
我希望def f():
b = ['c', 8]
return 1, 2, b*, 3
返回元组f
。我找到了一种方法,使用(1, 2, 'c', 8, 3)
后跟itertools
,但这不是很好,我想知道是否有一种优雅的方法来做到这一点。
答案 0 :(得分:9)
解包操作符*
出现在b
之前,而不是之后。
return (1, 2, *b, 3)
# ^ ^^ ^
但是,这只适用于Python 3.5+(PEP 448),还需要添加括号以防止出现SyntaxError。在旧版本中,使用+
来连接元组:
return (1, 2) + tuple(b) + (3,)
如果tuple
已经是元组而不是列表,则不需要b
调用:
def f():
b = ('c', 8)
return (1, 2) + b + (3,)