簡體   English   中英

Python從xlrd創建的列表中刪除“文本”

[英]Python remove 'text' from lists made by xlrd

我使用xlrd讀取了三列的每個單元格,從而形成了三個列表。 然后,我將所有三個列表的第i個元素附加到新列表中,從而創建了一個新的列表列表。

search_terms=[]
for row in range(0, book.nrows):
    search_terms.append([med_name[row], med_school[row], mentor[row]])
print(*search_terms[0:15], sep='\n')
[text:'Andrew Burkeland', 'Weill Cornell Medical College', 'Dave Cutler ']
[text:'Andrew Pence', 'University of Alabama at Birmingham School of Medicine', 'Jack Warran ']

有沒有辦法刪除“文本:”? 我將search_terms每個列表輸入到Entrez.egquery以搜索pubmed結果,並且在查詢行中使用“ text:”,我一直得到0個結果。

讓我們假設一個簡單的表叫做“ students.xlsx”

Student     School     Mentor
John Doe    Harvard    Kornberg
Jane Done   Stanford   Pauling

現在用xlrd打開它

import xlrd
xl_workbook = xlrd.open_workbook('students.xlsx')
xl_sheet = xl_workbook.sheet_by_index(0)
row = xl_sheet.row(1)

現在讓我們看一下各個部分

print(row)

[text:'John Doe', text:'Harvard', text:'Kornberg']

print(row[0])

text:'John Doe'

print(row[0].value)

'John Doe'

問題是row[0]xlrd單元格,而不是字符串,這就是為什么有必要通過value獲得內容的原因。

現在讓我們對所有行(標頭除外)執行此操作:

raw_data = list()
for row in range(1, xl_sheet.nrows):
    raw_data.append(xl_sheet.row(row))

author_list = list()
for raw in raw_data:
    author_list.append(list())
    for r in raw:
        author_list[-1].append(r.value)
print(author_list)
 > [['John Doe', 'Harvard', 'Kornberg'], ['Jane Done', 'Stanford', > 'Pauling']] 

或簡稱:

author_list = [[c.value for c in xl_sheet.row(n)] for n in range(1, xl_sheet.nrows)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM