我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.
我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.
我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.
在这段代码中,_after 的含义是什么for?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
Run Code Online (Sandbox Code Playgroud) s = [1,2,3,4,5,6,7,8,9]
n = 3
zip(*[iter(s)]*n) # returns [(1,2,3),(4,5,6),(7,8,9)]
Run Code Online (Sandbox Code Playgroud)
zip(*[iter(s)]*n)工作怎么样?如果用更详细的代码编写它会是什么样子?
有没有办法获取一个4*x字符长的字符串,并将其切成4个字符串,每个x字符长,不知道字符串的长度?
例如:
>>>x = "qwertyui"
>>>split(x, one, two, three, four)
>>>two
'er'
Run Code Online (Sandbox Code Playgroud) 我在Jupyter Notebook中查看Pandas DataFrame,我的DataFrame包含URL请求字符串,可以是数百个字符长,没有任何空格分隔字符.
当有空白时,Pandas似乎只在文本中包装文本,如附图所示:
如果没有空格,则字符串显示在一行中,如果没有足够的空间,我的选项要么是要看'...',要么我必须设置display.max_colwidth为一个巨大的数字,现在我有一个难以阅读的表格,滚动很多.
有没有办法强制Pandas包装文本,比如每100个字符,无论是否有空格?
我将如何能够采取像一个字符串'aaaaaaaaaaaaaaaaaaaaaaa'
,并将其分成4个长度元组像(aaaa,aaaa,aaaa)
我正在使用Python为我工作的实验室编程.如何切出给定字符串中的每3个字符并将其附加到列表中?
即XXXxxxXXXxxxXXXxxxXXXxxxXXX(其中X或x是任何给定的字母)
string = 'XXXxxxXXXxxxXXXxxxXXXxxxXXX'
mylist = []
for x in string:
string[?:?:?]
mylist.append(string)
Run Code Online (Sandbox Code Playgroud)
我希望列表看起来像这样:['XXX','xxx','XXX','xxx','XXX'......等等]
有任何想法吗?
我有一个字符串,我需要分成2个字母的部分.例如,'ABCDXY'应该成为['AB', 'CD', 'XY'].在奇数个字符的情况下的行为可以完全是任意的(我将提前检查长度).
没有丑陋的循环有没有办法做到这一点?
如何从字符串中获取python而不是一个字符,而是两个?
我有:
long_str = 'abcd'
for c in long_str:
print c
Run Code Online (Sandbox Code Playgroud)
它让我喜欢
a
b
c
d
Run Code Online (Sandbox Code Playgroud)
但我需要得到
ab
cd
Run Code Online (Sandbox Code Playgroud)
我是python中的新手..有什么办法吗?
我正在寻找一种漂亮的pythonic方法来找到DNA序列中的开放阅读框架.我发现许多在线实现使用索引,标志和其他这样的丑陋.
我很确定可以创建正则表达式实现,但我对正则表达式不好.一般的想法是我想通过'ATG','TAG','TGA'和'TAA'分割出一串DNA序列.但是我不想在重叠区域上分裂,例如序列'ATGA'应该分成'ATG','A'.基本上在三个框架中的每个框架中从左到右.
为清晰起见编辑:如评论中所述,尽管存在(在非零帧中),但ATGATTTTGA应该将一个序列拆分为ATG,TTTTGATGA
edit2:这就是我在没有正则表达式的情况下使用list comprehension splitting链接实现的方法.我讨厌使用旗帜.
def find_orf(seq):
length = 0
stop = ['TAA','TGA','TAG']
for frame in range(3):
orfFlag, thisLen = None, 0
splitSeq = [seq[start+frame:start+frame+3] for start in range(0,len(seq),3)]
for codon in splitSeq:
if codon == 'ATG':
orfFlag = True
thisLen += 1
elif orfFlag and codon in stop:
orfFlag = None
if thisLen > length:
length = thisLen
else:
thisLen += 1
return length
Run Code Online (Sandbox Code Playgroud)