Python 关于函数的几个问题

Python 关于函数的几个问题,python,Python,如果len(people)仅为3,如何让people\u num返回6。对于table_num,在-(-len(people)//table_size)中有负号,这有什么作用?使用一些简单的例子,是否有其他方法计算与会者和桌子的数量?谢谢。既然你把每个家庭的人数加起来,那么每个家庭的人数就会变成len(['Jan'])+len(['Jen',Jess'])+len(['Jem',Jack',Janis'])=1+2+3=6 -(-len(people)//table\u size)这个词有点狡猾

如果
len(people)
仅为
3,如何让
people\u num
返回
6
。对于
table_num
,在
-(-len(people)//table_size)
中有负号,这有什么作用?使用一些简单的例子,是否有其他方法计算与会者和桌子的数量?谢谢。

既然你把每个家庭的人数加起来,
那么每个家庭的人数就会变成
len(['Jan'])+len(['Jen',Jess'])+len(['Jem',Jack',Janis'])=1+2+3=6


-(-len(people)//table\u size)
这个词有点狡猾,但是你会注意到它的作用,注意到
a//b==floor(a/b)
。整数除法
c=a//b
的定义使得
c
是最大的整数,因此
c@siwica我得到了关于len()的第一部分,第二部分在地板上用负数除法似乎有点混乱。最后一部分使用列表理解,非常简洁,可以从中删除。谢谢。@siwica地板分割带负数,通常在什么时候使用?
def get_party_stats(families, table_size=6):

    """To calculate the number of attendees and tables needed.

    Args:
        families(list): a list of members.
        table_size(int): table size of 6.

    Returns:
        mixed: people count & table count.

    Examples:

        >>> get_party_stats([['Jan'], ['Jen', 'Jess'], ['Jem', 'Jack',
        'Janis']])
        '(6, 3)'
    """
    table_num = 0
    people_num = 0

    for people in families:
        table_num += -(-len(people)//table_size)
        people_num += len(people)
    return people_num, table_num
 -1 // 6 == -1           1 // 6 == 0
 -2 // 6 == -1           2 // 6 == 0 
      ...                    ...
 -6 // 6 == -1           6 // 6 == 1 
 -7 // 6 == -2           7 // 6 == 1 
 -8 // 6 == -2           8 // 6 == 1
      ...                    ...
-12 // 6 == -2          12 // 6 == 2 
-13 // 6 == -3          13 // 6 == 2 
def get_party_stats(families, table_size=6):
    return (sum([len(f) for f in families]),
            sum([-(-len(f) // table_size) for f in families]))