注册 登录
编程论坛 Python论坛

元组类型究竟能不能被索引

书生牛犊 发布于 2018-02-21 10:52, 2191 次点击

程序代码:
#测试Python函数传入数组与一般变量时的不同效果

def fun1(a,b,c):
    for i in range(len(a)):
        a[i]+=1
   
    ++c
    for i in range(len(a)):print(a[i],' ')
    for i in range(b.__len__()):print(b[i],' ')
    print(c.__format__())

def main1():
    a=[1,2,3,4,5]#列表变量即数组
    b={1,2,3,4,5}#元祖,内容及长度恒不可改
    c=1
    fun1(a,b,c)
    print("OUT Fun1")
    for i in range(len(a)):print(a[i],' ')
    for i in range(b.__len__()):print(b[i],[ ])
    print(c.__format__())
main1()            

程序代码:
#代码运行反馈
2  
3  
4  
5  
6  
Traceback (most recent call last):
  File "test.py", line 39, in <module>
    main1()            
  File "test.py", line 34, in main1
    fun1(a,b,c)
  File "test.py", line 27, in fun1
    for i in range(b.__len__()):print(b[i],' ')
TypeError: 'set' object does not support indexing#这句话的含义应该是元祖类型不被许可索引吧?

***Repl Closed***

元组类型自创建起不可被修改,这我知道,但是这里我只是访问它啊?为什么不允许呢?还是说Python元组自保意识贼强,不仅不许修改,干脆连直接接触数据源都不让了?必须用自带的函数才能对其执行遍历访问?
参考资料:https://
参考资料里就可以访问啊?我觉得我的语法应该也是一致的吧,还是我错过什么了?


3 回复
#2
书生牛犊2018-02-21 11:45
已解决:
列表遍历

for i in a:++i

此处的语法应该和Java的for each 是一样的吧。
#3
william20112018-02-23 20:33
“b={1,2,3,4,5}#元祖,内容及长度恒不可改”
这句,你是误设成了集合而非元祖,b=(1,2,3,4,5) 才是元祖的写法
#4
书生牛犊2018-06-02 22:40
回复 3楼 william2011
原来元组是小括号啊,,,谢谢
1