如何将列表传递到另一个函数,然后制作列表列表

如何解决如何将列表传递到另一个函数,然后制作列表列表

我有一个名为labeled函数,该函数基本上扫描列表中每个元素的第一个字符,并仅返回带有标签的那些元素。到目前为止,我已经把该功能调低了。但是,我需要一个从原始函数获取列表的函数,然后计算该值在列表中出现的次数。因此,假设用户输入了"I really like hot cheetos #good #yum #yum",我将需要使用该字符串,让第一个函数返回主题标签列表,然后让第二个函数返回类似['yum',2,'good',1]的东西。这就是我现在拥有的:

 def labeled(x):
    x = input("Enter a sentence or quit: ")
    if x == 'quit':
        return "Bye"
    labeled_list = []
    for word in x.split():
        if word [0] == "#":
            labeled_list.append(word[1:])
    for hashtags in labeled_list:
        return labeled_list      
print(labeled())
def tabulated(labeled_list):

解决方法

collections.Counter是满足您所有频率计数需求的方法,您可以使用re.findall(r"(?:^|\s)#(\w+)",s)很好地提取主题标签。

话虽如此,所需的输出结构对我而言似乎不是最佳的。要找到单词的频率,需要进行线性搜索,然后进行可能会崩溃的index + 1操作并对其进行迭代是很尴尬的。我更喜欢Counter能给您的字典,或者至少是一个元组词频对列表。以下代码显示了如何获取Counter,然后将数据逐步转换为(可能是?)不太有用的结构:

>>> import re
>>> s = "I really like hot cheetos #good #yum #yum"
>>> tags = re.findall(r"(?:^|\s)#(\w+)",s)
>>> tags
['good','yum','yum']
>>> from collections import Counter
>>> Counter(tags)
Counter({'yum': 2,'good': 1})
>>> [x for x in Counter(tags).most_common()]
[('yum',2),('good',1)]
>>> [y for x in Counter(tags).most_common() for y in x]
['yum',2,'good',1]
,

这是我的看法,使用列表推导和集合。Counter。

>>> import collections
>>> t = "I really like hot cheetos #good #yum #yum"
>>> l = [w.replace('#') for w in t.split() if w[0] == '#']
>>> collections.Counter(l)
Counter({'#yum': 2,'#good': 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”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?