|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
原问题:写一个遍历 names 列表以创建 usernames 列表的 for 循环。要为每个姓名创建用户名,使姓名全小写并用下划线代替空格。对以下列表运行 for 循环:
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
应该会创建列表:
usernames = ["joey_tribbiani", "monica_geller", "chandler_bing", "phoebe_buffay"]
我的代码
names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
usernames = []
i = 0
for i in range(len(names)):
usernames[i] = names[i].lower()
x = usernames[i].find(' ')
usernames[i] = usernames[i][:x] + '_' + usernames[i][x:]
print(usernames)
报错
IndexError: list assignment index out of range
usernames 列表初始化时为 空列表,导致一开始 usernames[i ] 赋值超出索引值,导致报错
可以在初始化时候将列表创建好指定长度,即可:
- names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
- usernames = [0] * len(names)
- for i in range(len(names)):
- usernames[i] = names[i].lower()
- x = usernames[i].find(' ')
- usernames[i] = usernames[i][:x] + '_' + usernames[i][x+1:]
- print(usernames)
复制代码
或者直接使用 append 函数,同2楼代码:
- names = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
- usernames = []
- for i in range(len(names)):
- usernames.append(names[i].lower())
- x = usernames[i].find(' ')
- usernames[i] = usernames[i][:x] + '_' + usernames[i][x+1:]
- print(usernames)
复制代码
|
|