一个小问题:把八个字符两两分开。
有一个字符串,例如十六进制数字:4EA11802
能否使用split函数两位两位的拆分开?拆分成:4E,A1,18,02。
多分酬谢哦!
[解决办法]
reference上没看到split有这功能吧?
网上倒找到几个方法,估计你也都google过了吧
def splitCount(s, count): return [''.join(x) for x in zip(*[list(s[z::count]) for z in range(count)])] c'4EA11802'splitCount(c,2)['4E', 'A1', '18', '02']def split_len(seq, length): return [seq[i:i+length] for i in range(0, len(seq), length)] split_len(c,2)['4E', 'A1', '18', '02']def chunks(l,n): for i in xrange(0,len(l),n): yield l[i:i+n] list(chunks(c,2))['4E', 'A1', '18', '02']
[解决办法]
>>> def splitCount(s, count):... return [''.join(x) for x in zip(*[list(s[z::count]) for z in range(count)])]... >>> c'4EA11802'>>> splitCount(c,2)['4E', 'A1', '18', '02']>>> def split_len(seq, length):... return [seq[i:i+length] for i in range(0, len(seq), length)]... >>> split_len(c,2)['4E', 'A1', '18', '02']>>> def chunks(l,n):... for i in xrange(0,len(l),n):... yield l[i:i+n]... >>> list(chunks(c,2))['4E', 'A1', '18', '02']
[解决办法]
[code=Python][/code]
s = '4EA11802'
list = [ s[i:i+2] for i in range(0,len(s),2) ]
[解决办法]
s = '4EA11802'list = [ s[i:i+2] for i in range(0,len(s),2) ]
[解决办法]
[Quote=引用:]
[code=Python][/code]
s = '4EA11802'
list = [ s[i:i+2] for i in range(0,len(s),2) ]
[/Quote]
这个方法不错!
[解决办法]
my $str = "4EA11802";my @list;my $i = 0;for($i=0; $i<length($str); $i+=2){ push(@list, substr($str, $i, 2));}foreach(@list){ print; print "\n";}
[解决办法]
@result = split /[0-9a-f]{2}/,$str;
可能还有点问题,抛砖引玉了。
[解决办法]
@x = '4EA11802' =~ /../g;
[解决办法]
perl -le '$str="4EA11802"; while($str=~/../g){push @array,$&};print $_ foreach @array' 4EA11802
[解决办法]
#!/usr/bin/perl -wuse strict;print "$_\n" for grep{$_}split /(..)/,'ABCDEFGH';
[解决办法]