Python:当格式不标准时,如何使 for 循环将数据附加到列表?

标签 python

我希望使用 Python 将一些标记数据读入数据结构。到目前为止,我已经成功地将每个标记名称读取到一个列表中(其中有 2,000 个)。

我的数据本来是在Excel中,但我把它转换成了一个.txt文件。

文件中的头数据被删除并使用 readline() 分配给变量。

带有标记名称的每一行都以双引号 (") 开头,因此我能够轻松获取该信息并将其存储为列表。

包含该标记数据的每一行缩进 2 个空格,并且有些行以“a”、“b”或“h”开头。我想把这些变成一个数据结构。我已经尝试过列表和字符串,但都返回为空。每个标记名称下的数据是一个由“a”、“b”和“h”三个字母组成的 block ,每个字母代表种群中的一个个体(共有 250 个)。棘手的是,有 5 个字母由一个空格分隔,但这些 5 个字母的 block 与其他 5 个字母的 block 由两个空格分隔。

例子:

"BK_12 (a,h,b) ; 1"
  b a a a b  a b a a a  b a b a a  a a a a a  a a a b b  a a b a h  b   
  a a a a a  a a a a a  a a a a a  a b a a a  a h a a a  a a a a a  h
  a a b a a  a h a a a  a h a h a  a a a a a  a a b a a  a a a a h  a
  a a a b a  a a a a a  a a b a a  b b a b a  h a b a a  a b a a a  h 
  a a a a

那部分我真的不需要帮助,只是为了引用文件的外观。我的最终目标是使用表型数据来查找与特定表型相关的标记。

到目前为止,我使用 for 循环来完成此操作。我的代码如下。编辑:我尝试从位置 2 开始索引,而不是从位置 0 开始搜索空白空间。我认为这会起作用。 else: 语句是为了告诉我它是否识别 elif 语句。没有返回任何内容,所以我假设它在这方面正在工作,但它没有附加。

Markers = []
Genotype_Data = []

for line in infile:
    line=line.rstrip()
    if (line[0] == '"'):
        line=line.rstrip()
        Markers.append(line)
    elif (line[2] == 'a'):
        line=line.rstrip()
        Genotype_Data.append(line)
    elif (line[2] == 'b'):
        line=line.rstrip()
        Genotype_Data.append(line)
    elif (line[2] == 'h'):
        line=line.rstrip()
        Genotype_Data.append(line)
    else:
        print("Something isn't right!")

最佳答案

我不明白你的目标是什么。

也许这可以帮助您实现它:

print(line.split()) # just a and b, ...
['b', 'a', 'a', 'a', 'b', 'a', 'b', 'a', 'a', 'a', 'b', 'a', 'b', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'a', 'a', 'b', 'a', 'h', 'b']
>>> print(line.split(' ')) # a b, ... and '' where a new block starts
['', '', 'b', 'a', 'a', 'a', 'b', '', 'a', 'b', 'a', 'a', 'a', '', 'b', 'a', 'b', 'a', 'a', '', 'a', 'a', 'a', 'a', 'a', '', 'a', 'a', 'a', 'b', 'b', '', 'a', 'a', 'b', 'a', 'h', '', 'b', '', '', '']
>>> '  x x  '.strip()
'x x'

关于Python:当格式不标准时,如何使 for 循环将数据附加到列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731112/

相关文章:

python - 如何计算列表中唯一列表的数量?

python - 闭包如何在 runpy 中工作?

python - 在 macOS Sierra 上使用 git-review 的 RequestsDependencyWarning

python - 在 Django 中更新 Postgres ArrayField

python - Instagram API python 用户后跟

python - TensorFlow - 密集向量到独热

python - Numpy Pandas 安装失败,/dev/null 上存在沙箱冲突

python - 从 nba_api 写入 CSV 时不按行分隔

Python/PyQT QString 不会插入到 MySQL 数据库中

python - 值错误 : total size of new array must be unchanged