【问题标题】:Creating a new list from the data in the list with certain rules使用特定规则从列表中的数据创建新列表
【发布时间】:2022-01-15 12:05:20
【问题描述】:

我有来自不同 csv 文件的数据。这些数据已列出,包括增值税 0 和总金额。除了这两个信息之外,我的列表中还存在许多其他值。在示例中,我的总金额为 4000,增值税为 0。根据我的算法,它将 4000 替换为最大且可能不相关的值。 df=[26300.0, 17360.0, 4000.0, 4000.0, 4000.0, 4000.0, 6.575, 3.7, 0.0, 0.0, 0.0] 重要的是列表有所不同。我的共享列表单元测试中的示例。

def zero_vat(df):
    catch_list=[]
    df.sort(reverse = True)
    print(df)
    for i, value in enumerate(df):  # 1.array
        for j, value2 in enumerate(df):  # 2.array
            if df[i]==0:
                if df[i]+max(df)==df[j]:
                    temp_list=[]
                    temp_list.append(df[i])
                    temp_list.append(df[j])
                    temp_list.append(max(df))
                    catch_list.append(temp_list)
                    print(catch_list)
            elif df[i]+0 == max(df):
                temp_list=[]
                temp_list.append(df[i])
                temp_list.append(0.0)
                temp_list.append(max(df))
                catch_list.append(temp_list)
                print(catch_list)
            return catch_list

输出:[[26300.0, 0.0, 26300.0]] 必须是:[[4000.0,0.0,4.000]]

【问题讨论】:

  • 为了清楚起见,您是说您获得“[[26300.0, 0.0, 26300.0]] ”,但期望获得“[[4000.0,0.0,4.000]]”?
  • 是的。列表有 0 精确和其他元素之一。此列表中的金额为 4000.00。用我的代码,最旧的选择 26300.00
  • i = 0 和 j = 0 时返回 catch_list。

标签: python arrays list


【解决方案1】:

我用一个函数解决了这个问题,该函数接受列表中的奇数和大数。

   def find_largest_duplicated_value(df):
        duplicated_values = []

        for item in df:
            if df.count(item) > 1:
               duplicated_values.append(item)

        return max(duplicated_values)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2020-11-03
    相关资源
    最近更新 更多