Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何遍历嵌套列表,在搜索到的索引之前打印索引值_Python_Loops_Csv_For Loop_Iterator - Fatal编程技术网

Python 如何遍历嵌套列表,在搜索到的索引之前打印索引值

Python 如何遍历嵌套列表,在搜索到的索引之前打印索引值,python,loops,csv,for-loop,iterator,Python,Loops,Csv,For Loop,Iterator,在python中: 如果标题令人困惑,请道歉。我有一个从Kindle的clippings.txt文件中获取的列表。我想在列表中搜索,只打印我突出显示的实际单词或句子。.csv文件的格式为: 経済ヤクザ (角川文庫) (一橋 文哉) (BOOK) - 位置No. 4-4のハイライト |作成日: 2020年3月21日土曜日14:53:17 *(DATE / PAGE)* (EMPTY LINE) 無断 (WORD THAT I WANT) ========== (SEPARATOR 経済ヤクザ (角

在python中: 如果标题令人困惑,请道歉。我有一个从Kindle的clippings.txt文件中获取的列表。我想在列表中搜索,只打印我突出显示的实际单词或句子。.csv文件的格式为:

経済ヤクザ (角川文庫) (一橋 文哉) (BOOK)
- 位置No. 4-4のハイライト |作成日: 2020年3月21日土曜日14:53:17 *(DATE / PAGE)*
(EMPTY LINE)
無断 (WORD THAT I WANT)
========== (SEPARATOR
経済ヤクザ (角川文庫) (一橋 文哉)
- 位置No. 4-4のハイライト |作成日: 2020年3月21日土曜日 14:53:40

転載、
==========
等等。到目前为止,我的代码是:

import csv
raw_list = []
path = r'D:\Desktop\kindlewords.txt'
#open file, append each line to raw_list
with open(path, 'r',encoding='utf-8') as csv_file:
    csv_reader = csv.reader(csv_file)
    for line in csv_reader:
        raw_list.append(line)
    csv_file.close()

print(raw_list)
for block in raw_list:
    for characters in block:
        if '===' in characters:
           print(raw_list[raw_list.index(block)-1])
我的问题是这会返回一吨['無断'], 这只是我想从列表中找到的第一个单词——它似乎只会在第一次出现“=============”之前找到这个单词

我希望能够找到所有出现的情况,并且对任何方法都持开放态度(我尝试过正则表达式,但不知道在这种情况下如何使用它)


第一幅图像是.txt文件的格式,第二幅图像是我当前代码打印的内容。

仔细查看您的代码后,我发现了这个问题并提出了解决方案:

for index, block in enumerate(raw_list):
  for characters in block:
    if '===' in characters:
      print(raw_list[index-1])
您得到的值相同,因为“该值”的索引始终相同。(列表中的值重复)

例如:

example_list = [1,2,1]

for x in example_list:
  print(example_list.index(x))
你会得到:

0
1
0

仔细查看您的代码后,我发现了这个问题,并提出了一个解决方案:

for index, block in enumerate(raw_list):
  for characters in block:
    if '===' in characters:
      print(raw_list[index-1])
您得到的值相同,因为“该值”的索引始终相同。(列表中的值重复)

例如:

example_list = [1,2,1]

for x in example_list:
  print(example_list.index(x))
你会得到:

0
1
0

在迭代输入文件的行时,可以使用变量保存前一行的内容,如果当前行等于记录分隔符,则可以输出前一行:

with open(path) as file:
    for line in map(str.rstrip, file):
        if line == '==========':
            print(prev)
        prev = line

演示:

在迭代输入文件的行时,可以使用变量保存前一行的内容,如果当前行等于记录分隔符,则输出前一行:

with open(path) as file:
    for line in map(str.rstrip, file):
        if line == '==========':
            print(prev)
        prev = line

演示:

那么你想要单词、书籍和页面?或者“==”之后的第一句话?如果你粘贴一个文件样本(1或2段)也会有帮助@andreis11我只想要这个单词。那里应该有一个样本的图像-它没有显示出来吗?-编辑:我想它也会被认为是一个句子。就在每个文档之前的那一行“=======”s.那么你想要单词、书籍和书页?或者“==”之后的第一句话?如果你粘贴一个文件样本(1或2段)也会有帮助@andreis11我只想要这个单词。那里应该有一个样本的图像-它没有显示出来吗?-编辑:我想它也会被视为一个句子。只需在每一行之前”======“是的,这就解决了!非常感谢。不客气!如果你也将其标记为答案,我将不胜感激!这就解决了!非常感谢。不客气!如果你也将其标记为答案,我将不胜感激!