首页
社区
课程
招聘
[求助]新手学python问个b=[]的问题
2014-3-31 22:46 3783

[求助]新手学python问个b=[]的问题

2014-3-31 22:46
3783
写的分割字符串的程序,但是不能自动适应单词个数,定义b=[]会出错,只能b=['','','','']
求大神指点,小弟感激不尽

代码如下

s='   xbc   wzx  ydc  eeff '       #字符串里有空格,要求把每个单词取出
i=0
b=['','','','']                               #只能这样定义好个数吗??
a=0

while a!=-1:
    a=0

    if s != s.strip():
        s=s.strip()
        print 's=',s
   
    a=s.find(' ')                         #找不到空格返回-1
    if a!=-1:
        print 'a=',a
        print 'b=',b
        print 's[:a]=',s[:a]
        b[i]=s[:a]   
        print 'b=',b
        s=s[a:]
        print 's=',s
        i=i+1
        print 'i=',i

b[i]=s
print 'b=',b   
print '************************'

这段代码的功能已经实现,就是想做的好点,实现自动识别有多少个单词,在定义的时候可以灵活一点。

改成b=[]后出错的提示如下

s= xbc   wzx  ydc  eeff       #已执行
a= 3                                      #已执行
b= []                                      #已执行
s[:a]= xbc                              #已执行

Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/python实验/17.py", line 18, in <module>
    b[i]=s[:a]
IndexError: list assignment index out of range

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 5
活跃值: (359)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
king少 2014-4-1 01:44
2
0
python强大就强大在   字符串的处理异常异常灵活  ———— 这里用的是异常这个词。

字符串处理有个函数是split,这个是脚本语言都有的,像什么JS php

珍爱生命,使用python
雪    币: 5
活跃值: (359)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
king少 2014-4-1 01:51
3
0
抱歉忘记跟你说你的根本问题

你的错误是越界,这个应该看得懂

至于为什么越界,是因为 你已经赋值了b=[]  这里是定义好了。他就是0个元素的list

你不能再去赋值了,只能是  b.join(xxx)

这里需要了解的就是  java中万物皆对象,而python也是,(不过我个人觉得  python  万物皆引用  应该更确切些)

建议看下  python学习手册  挺好的书   随手翻翻就能看完   悄悄代码啊   写写爬虫什么很快就上手了
雪    币: 513
活跃值: (421)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Flowing 2014-4-1 09:14
4
0
这是在用python写c++啊

'   xbc   wzx  ydc  eeff '.split()
雪    币: 23
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
阿迪达拉 2014-4-1 10:29
5
0
[QUOTE=king少;1272113]抱歉忘记跟你说你的根本问题

你的错误是越界,这个应该看得懂

至于为什么越界,是因为 你已经赋值了b=[]  这里是定义好了。他就是0个元素的list

你不能再去赋值了,只能是  b.join(xxx)

这里需要了解的就是  java中万物皆对象,而python也是,(不过我个人觉得  pyt...[/QUOTE]
恩恩,多谢了,非常感谢你的回答,感谢看雪,这真是个好地方。
雪    币: 23
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
阿迪达拉 2014-4-1 10:36
6
0
就是做做小练习,为了实现split函数的功能
雪    币: 124
活跃值: (344)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
topofall 2014-4-1 12:41
7
0
s='   xbc   wzx  ydc  eeff '
str_list = s.split(' ')
new_str = []
i=0
while i < len(str_list):
雪    币: 124
活跃值: (344)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
topofall 2014-4-1 12:42
8
0
if str_list[i] != '':
           new_str.append(str_list[i])
     i+=1
游客
登录 | 注册 方可回帖
返回