微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

remove() 函数后如何从列表理解中获取更新的列表

如何解决remove() 函数后如何从列表理解中获取更新的列表

我想在循环的 if else 部分之后获取列表,但是如何在对它进行操作之后获取列表。由于从列表中删除 1.00 后不会返回更新的列表,我该如何将其设置为变量并获取它?

注意:'nls' 中的每一项都是一个浮点数列表,无需删除功能即可工作,但如果存在某个值,我需要将其删除

[round((sum(list(i).remove(1.00)) / len(list(i).remove(1.00))),2)
      if 1.0 in i else sum(i) / len(i)
     for i in zip(nls[0],nls[1],nls[2])]

对于 i 的值:(1.0,214.97,214.97),(2.0,179.99,179.99),(1.0,169.99,169.99)

我想得到 [214.97,120.66,169.99]

解决方法

如果我正确理解了您的问题,可能是这样的吗?

from itertools import zip_longest
from statistics import mean

nls = [
    (1.0,2.0,1.0),(214.97,179.99,169.99),169.99)
]

def filter_column(column):

    def predicate(value):
        from math import isclose
        return value is not None and not isclose(value,1.0)

    return tuple(filter(predicate,column))

print(list(map(mean,map(filter_column,zip_longest(*nls,fillvalue=None)))))

输出:

[214.97,120.66000000000001,169.99]
>>> 

EDIT - 如果所有列都保证具有相同的长度(过滤前),则不需要 itertools.zip_longest,在这种情况下,也可以更改谓词。

,

列表推导式在一定程度上很有用,但不能做所有事情。在某个时候,它们可能会不必要地使代码不可读。我会坚持使用一个很好的老式 for 循环来完成这项任务:

function AnkiCard(word,transcription,translation,examples,soundURL) {
            this.word = word;
            this.transcription = transcription;
            this.translation = translation;
            this.examples = examples;
            this.soundURL = soundURL;
        }

        function Examples(engExample,rusExample) {
            this.engExample = engExample;
            this.rusExample = rusExample;
        }


        function sendTable() {
            let cells = document.getElementsByTagName("tr");

            let ankiCards = [];

            for (let i = 1; i < cells.length; i++) {
                let word = cells[i].getElementsByTagName("td").item(0).innerText;
                let transcription = cells[i].getElementsByTagName("td").item(1).innerText;
                let translation = cells[i].getElementsByTagName("td").item(2).getElementsByTagName("input").item(0).value;
                let engExample = cells[i].getElementsByTagName("td").item(3).getElementsByTagName("option");
                let selectEngExample = findSelectExample(engExample);

                let rusExamples = cells[i].getElementsByTagName("td").item(4).getElementsByTagName("option");
                let selectRusExample = findSelectExample(rusExamples);

                let examples = new Examples(selectEngExample,selectRusExample);


                let soundURL = cells[i].getElementsByTagName("td").item(5).innerText;

                const ankiCard = new AnkiCard(word,soundURL);

                console.log(translation);

                ankiCards.push(ankiCard);

                console.log(JSON.stringify(ankiCard));
            }

            sendRequest(ankiCards)

        }

        function findSelectExample(examples) {
            for (let i = 0; i < examples.length; i++) {
                if (examples[i].selected === true) {
                    return examples[i].innerText;
                }
            }
        }

        function sendRequest(ankiCards) {
            var xhr = new XMLHttpRequest();

            var body = JSON.stringify(ankiCards);

            xhr.open("POST",'/save',true);
            xhr.setRequestHeader('Content-Type','application/json');

            xhr.send(body);
        }
,

代码中的错误,不是删除任何特定值而是零值,因此只需除以 len()-1 即可获得所需结果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?