簡體   English   中英

在python中列出,str和int幫助

[英]List, str and int help in python

我有這樣的號碼清單:

146、168

174、196

230、252

258、280

286、308

314、336

342、364

370、392

第一個數字代表我從代碼中獲得的值(起始數字),逗號后的第二個數字為終止值。 我想做的是同時使用開始值和結束值來打印字符串。 這是我的代碼的一部分:

root = etree.parse(f)

for lcn in root.xpath("/protein/match[@dbname='DB']/lcn"):
    start = lcn.get("start")
    end = lcn.get("end")
    print "%s, %s" % (start, end,)
    if start <= end:
        start = int(start+1)
        print start    
    if start <= end:

      print list(start)

      start = int(start+1)

我收到錯誤消息,說我無法連接'str'和'int'對象。.注意:列表索引中有一個字母。 因此,我的目標是在每個起始值和結束值的一行上打印出這些字母。 例如ACTGAGCAG,並可能導入到另一個輸出文件。 你能幫我這個忙嗎?

更新:一切正常,我得到了結果,但是現在我想使它們出現在一行上。 我這樣做了,但我收到了一條錯誤消息,指出TypeError:'builtin_function_or_method'對象不可下標

    while start <= end:
        inRange = makeList.append[start]
        start += 1
        print inRange

代替

start = lcn.get("start")
end = lcn.get("end")

采用

start = int(lcn.get("start"))
end = int(lcn.get("end"))

這是因為lcn.get返回一個字符串。

代替使用start = int(start+1) ,使用start += 1 您不再需要轉換為整數,並且start += 1start = start + 1簡寫。

代替print "%s, %s" % (start, end,) ,使用print "%d, %d" % (start, end) 結尾處的逗號是不必要的,並且startend現在是整數,因此請使用%d而不是%s

更新:

而不是

while start <= end:
    inRange = makeList.append[start]
    start += 1
    print inRange

采用

for i in range(start, end):
    makeList.append(i)
    print(i)

如果使用Python 3或使用

for i in xrange(start, end):
    makeList.append(i)
    print i

如果使用Python 2。

暫無
暫無

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

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