首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何迭代python列表并比较字符串或其他列表中的项

如何迭代python列表并比较字符串或其他列表中的项
EN

Stack Overflow用户
提问于 2015-11-07 23:03:36
回答 1查看 969关注 0票数 0

在前面的问题之后,如果某个列表中的搜索词在字符串中返回,则我尝试使用代码返回字符串,如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import re
from nltk import tokenize
from nltk.tokenize import sent_tokenize
def foo():
    List1 = ['risk','cancer','ocp','hormone','OCP',]
    txt = "Risk factors for breast cancer have been well characterized. Breast cancer is 100 times more frequent in women than in men.\
    Factors associated with an increased exposure to estrogen have also been elucidated including early menarche, late menopause, later age\
    at first pregnancy, or nulliparity. The use of hormone replacement therapy has been confirmed as a risk factor, although mostly limited to \
    the combined use of estrogen and progesterone, as demonstrated in the WHI (2). Analysis showed that the risk of breast cancer among women using \
    estrogen and progesterone was increased by 24% compared to placebo. A separate arm of the WHI randomized women with a prior hysterectomy to \
    conjugated equine estrogen (CEE) versus placebo, and in that study, the use of CEE was not associated with an increased risk of breast cancer (3).\
    Unlike hormone replacement therapy, there is no evidence that oral contraceptive (OCP) use increases risk. A large population-based case-control study \
    examining the risk of breast cancer among women who previously used or were currently using OCPs included over 9,000 women aged 35 to 64 \
    (half of whom had breast cancer) (4). The reported relative risk was 1.0 (95% CI, 0.8 to 1.3) among women currently using OCPs and 0.9 \
    (95% CI, 0.8 to 1.0) among prior users. In addition, neither race nor family history was associated with a greater risk of breast cancer among OCP users."
    words = txt
    corpus = " ".join(words).lower()
    sentences1 = sent_tokenize(corpus)
    a = [" ".join([sentences1[i-1],j]) for i,j in enumerate(sentences1) if [item in List1] in word_tokenize(j)]   


    for i in a:
        print i,'\n','\n'

foo()

问题是python空闲不打印任何东西。我能做错什么呢?它所做的就是运行代码,我得到了

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-08 00:34:29

你的问题我不太清楚,所以如果我搞错了,请纠正我。您是否试图将关键字列表(在list1中)与文本(在txt中)匹配?那是,

  • 对于list1中的每个关键字
  • 对txt中的每个句子做一次匹配。
  • 如果匹配的话打印句子?

我没有编写一个复杂的正则表达式来解决您的问题,而是将其分解为两部分。

首先,我把所有的文本分解成一个句子列表。然后编写简单的正则表达式来遍历每一个句子。这种方法的麻烦在于它不是很有效率,但是它解决了您的问题。

希望这一小块代码能帮助您找到真正的解决方案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def foo():
    List1 = ['risk','cancer','ocp','hormone','OCP',]
    txt = "blah blah blah - truncated"
    words = txt

    matches = []
    sentences = re.split(r'\.', txt)
    keyword = List1[0]
    pattern = keyword 
    re.compile(pattern)

    for sentence in sentences:
        if re.search(pattern, sentence):
            matches.append(sentence)

    print("Sentence matching the word (" + keyword + "):")
    for match in matches:
        print (match)

-产生随机数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from random import randint

List1 = ['risk','cancer','ocp','hormone','OCP',]
print(randint(0, len(List1) - 1)) # gives u random index - use index to access List1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33591551

复制
相关文章
Python 中如何向列表或数组添加元素
然而,与其它编程语言不同,数组在 Python 中不是一个内置的数据结构。Python 使用列表取代传统的数组。
Python学习者
2023/09/11
3620
Python判断列表中是否有某个项
这个算法比较巧妙:遍历列表,把列表中的每一项与匹配项进行比较,如果不相等就把下标为i的列表的值赋值给下标为k的列表,因为初始时k=i=0,意思就是取出当前项再赋值给当前项,假设有列表[1,2,3],匹配项val是2,则循环第一次后1的位置不变,当i=1,k=1时,也就是列表元素为2时,lt[i]!=val为false,进入下一次循环,此时k=1,i=2,lt[2]!=val (备注:lt[2]=2)满足条件,则执行lt[k]=lt[i],3会覆盖2的位置,列表就变成了[1,3,3],循环完毕,返回k值,再使用字符串截取lt[:k],截取从0位置开始,截取长度为k的闭区间长度的字符串,所以为1,3
程序员小新
2021/12/29
2.3K0
fastadmin如何在列表的操作中添加其他按钮
fastadmin默认的列表操作中只有编辑和删除按钮,如果我们需要添加其他按钮,需要先找到对应的js文件。我们需要在初始化表格中添加buutons属性,原来的js代码如下:
高久峰
2023/06/03
4.3K0
python中如何把列表转换为字符串
语法格式为: str.join(sequence) sequence是序列类型,序列类型有列表、元组、range 如果列表中为int型,可使用map(,)
全栈程序员站长
2022/08/23
4.3K0
2018年8月23日python中列表的高级操作:列表推导式,列表生成器,列表迭代器
列表在我们平常的编程中经常会用到,多用于临时存储一些程序需要的数据, 向列表中添加数据时,有多种方式: 1.数据少的话直接定义列表中的数据 my1 = [0, 1, 2, 3, 4, 5] 2.当数据稍微多点的话可以用for循环的方式向列表中添加数据,但是操作比较繁琐     my2 = list() for i in range(100):          my2.append(i)
武军超
2018/09/27
1.4K0
【说站】python迭代中删除列表项目
2、通过分配给slice somelist[:],改变现有列表以仅包含想要的项目。
很酷的站长
2022/11/24
1.6K0
【说站】python迭代中删除列表项目
python中星号的意义(**字典,*列表或元组)
传递实参和定义形参(所谓实参就是调用函数时传入的参数,形参则是定义函数是定义的参数)的时候,你还可以使用两个特殊的语法:*、** 。 调用函数时使用* ,** test(*args)中 * 的作用:其实就是把序列 args 中的每个元素,当作位置参数传进去。比如上面这个代码,如果 args 等于 (1,2,3) ,那么这个代码就等价于 test(1, 2, 3) 。 test(**kwargs)中** 的作用:则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {
用户1214487
2018/01/24
3.7K0
如何从 Python 中的字符串列表中删除特殊字符?
在进行字符串处理和文本分析时,有时我们需要从字符串列表中删除特殊字符。特殊字符可能是空格、标点符号、换行符等,在某些情况下它们可能干扰我们的文本处理或分析任务。Python 提供了多种方法来删除字符串列表中的特殊字符。本文将详细介绍在 Python 中删除字符串列表中特殊字符的几种常用方法,并提供示例代码帮助你理解和应用这些方法。
网络技术联盟站
2023/06/01
8.3K0
python字符串转化列表_Python列表到字符串的转换[通俗易懂]
Sometimes we want to convert the list to a string so that we can print it or log it for debugging purposes. In this tutorial, we will learn how to convert a list to string in a Python program.
全栈程序员站长
2022/08/25
2.7K0
python 字符串转列表,列表转字符串
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144126.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
1.2K0
python 字符串转列表,列表转字符串
python中的列表
列表是由一系列特定顺序排列的元素组成。你可以创建包含字母表中所有字母,数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、digits或names)是个不错的主意。
狼啸风云
2019/01/28
5.6K0
Python中的列表
列表 是一种用于保存一系列有序项目的集合,也就是说,你可以利用列表保存一串项目的序 列。想象起来也不难,你可以想象你有一张购物清单,上面列出了需要购买的商品,除开在 购物清单上你可能为每件物品都单独列一行,在 Python 中你需要在它们之间多加上一个逗 号。
benym
2022/07/14
4.9K0
Python中的列表
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 1.列表 数组:存储同一种数据类型的集合 scores = [12,23,45] 列表(打了激素的数组):可以存储任意数据类型
py3study
2020/01/10
5.2K0
python 中如何查找列表长度
In this article, we will be unveiling techniques to find the length of a Python list. Finding the length actually means fetching the count of data elements in an iterable.
用户8418197
2022/01/09
2.7K0
Python字符串,列表
字符串: 字符串的创建: 单引号, 双引号 ,三引号 <注意: 转义字符的使用> 字符串的特殊性: 索引 切片 连接 重复 成员操作符(in, not in)
py3study
2020/01/14
9790
python比较列表中元素大小和列表中元素的判定
列表的判定主要是判定列表中是否包含某个元素,使用逻辑运算符判定就可以了;列表的比较稍微复杂一些,首先比较的是两个列表中对应元素的大小,如果元素值一样,再比较列表长度。
python自学网
2021/12/01
5.7K0
python比较列表中元素大小和列表中元素的判定
迭代列表不要For循环,这是Python列表推导式最基本的概念
列表解析式(List comprehension)或者称为列表推导式,是 Python 中非常强大和优雅的方法。它可以基于现有的列表做一些操作,从而快速创建新列表。在我们第一次见到列表推导式时,可能会感觉这种方法非常炫酷,因此写列表推导式是非常爽的一件事。
机器之心
2019/09/19
1.3K0
迭代列表不要For循环,这是Python列表推导式最基本的概念
python 基础 切片 迭代 列表生成式
对list 进行切片   如列表     L = ['Adam', 'Lisa', 'Bart', 'Paul']     L[0:3]     ['Adam', 'Lisa', 'Bart']     L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。     即索引0,1,2,正好是3个元素。   如果第一个索引是0,还可以省略:     L[:3]     ['Adam', 'Lisa', 'Bart']     切片操作还可以指定第三个参数:       L[::2]       [
用户1197315
2018/04/04
8990
比较Python中的列表推导式和map(),filter()函数
对一个列表(迭代器)中的元素进行批量处理是一个很常见的业务需求,在 Python 中,一般有三种解决方案:for循环,列表推导式,或者map(),filter()函数。
杜逸先
2023/04/13
1.9K0
比较Python中的列表推导式和map(),filter()函数
点击加载更多

相似问题

迭代其他列表中的python列表

20

与Python列表中的其他项进行比较

33

迭代python列表并求和相等的项

012

如何迭代两个列表并比较其中的项?

27

Python:迭代嵌套列表列表中的每个项并替换特定项。

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文