楼主: 番茄奏鸣曲
5514 7

[问答] python def 返回值问题 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

60%

还不是VIP/贵宾

-

威望
0
论坛币
1808 个
通用积分
32.1968
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
6004 点
帖子
92
精华
0
在线时间
150 小时
注册时间
2012-2-20
最后登录
2022-4-28

楼主
番茄奏鸣曲 发表于 2022-3-13 04:15:01 |AI写论文
30论坛币
1. def nth_item(item_list, n, reverse=False):    y=item_list[n-1]
    return y


问题我需要加一些什么,才能当reverse=True的时候 nth_item可以有作用?
比如:
现在是nth_item(['one', 'two', 'three'], 3) 然后return 为 three
我应该加什么让nth_item(['one', 'two', 'three'], 1, reverse=True)返回为 three.
2.def one_big_list(lists):
    for l in lists:
      for y in l:
        yield from l
    y=list(one_big_list(lists))
    return y
list(one_big_list([[3,2], [1,4]]))


我应该怎么写可以直接call one_big_list 的时候可以返回两个列表的合并?因为按照我这种写法,在call one_big_list
对时候,我需要在 one_big_list 前面加list
3.def unique_values(data, key):
这个是去重问题,说实话,我没有看明白...
要求如下


>>> data =[
        { "product_type": "shoes", "color": "red" },
        { "product_type": "hats", "color": "blue" },
        { "product_type": "shoes", "size": "large" },

    >>> unique_values(data, "color")
    ['red', 'blue']




谢谢各位~~~~~





最佳答案

冷秋 查看完整内容

def nth_item(item_list, n, reverse=False): if reverse: n = len(item_list) - n + 1 y=item_list[n-1] else: y=item_list[n-1] return y
关键词:python def 返回值 Product Reverse

沙发
冷秋 学生认证  发表于 2022-3-13 04:15:02
def nth_item(item_list, n, reverse=False):
    if reverse:
        n = len(item_list) - n + 1
        y=item_list[n-1]
    else:
        y=item_list[n-1]
    return y

藤椅
冷秋 学生认证  发表于 2022-3-13 14:35:26
def unique_values(data, key):
    lst_value = []
    for each in data:
        if each.get(key,"") != "":
            lst_value.append(each[key])
    return list(set(lst_value))

板凳
冷秋 学生认证  发表于 2022-3-13 15:16:36
def one_big_list(lists):
    lst_value = []
    for each in lists:
        for x in each:
            lst_value.append(x)
    return lst_value

报纸
番茄奏鸣曲 发表于 2022-3-14 12:04:55
冷秋 发表于 2022-3-13 04:15
def nth_item(item_list, n, reverse=False):
    if reverse:
        n = len(item_list) - n + 1
你好~
我能再问一个问题么,为什么我看到提示说
nth_item(['blue', 'green', 'red'], 0) 得到的return为none?
nth_last_item(['blue', 'green', 'red'], 3, reverse=True) to return None
理论上似乎不可能?

地板
冷秋 学生认证  发表于 2022-3-14 12:31:04
(1)nth_item(['blue', 'green', 'red'], 0)运行下来不是返回Red吗?需要你把结果打印出来,不然程序不显示结果。
如,a = nth_item(['blue', 'green', 'red'], 0)       print(a)
(2)nth_item(['blue', 'green', 'red'], 3, reverse=True),返回Blue

7
番茄奏鸣曲 发表于 2022-3-14 12:40:05
冷秋 发表于 2022-3-14 12:31
(1)nth_item(['blue', 'green', 'red'], 0)运行下来不是返回Red吗?需要你把结果打印出来,不然程序不显 ...
啊,抱歉,我大概没有表达清楚,

提示说希望
nth_item(['blue', 'green', 'red'], 0) 得到的return为none,
nth_last_item(['blue', 'green', 'red'], 3, reverse=True)也为none

8
冷秋 学生认证  发表于 2022-3-14 12:53:57
番茄奏鸣曲 发表于 2022-3-14 12:40
啊,抱歉,我大概没有表达清楚,

提示说希望
def nth_item(item_list, n, reverse=False):
    if reverse:
        if len(item_list) == n:
            return None
        else:
            return item_list[len(item_list) - n]
    else:
        if n == 0:
            return None
        else:
            return item_list[n-1]
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 热心帮助其他会员

总评分: 学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-23 13:55