[英]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 += 1
是start = start + 1
簡寫。
代替print "%s, %s" % (start, end,)
,使用print "%d, %d" % (start, end)
。 結尾處的逗號是不必要的,並且start
和end
現在是整數,因此請使用%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.