1. python 报错TypeError: tuple indices must be integers or slices, not str 怎么解决
错误原因:
元祖的索引必须是整数或者切片,不能是字符,通过pymysql访问数据库,并查询数据
解决方法:
把Cursor关键字替换成DictCursor关键字。
ictCursor的这个功能是继承于CursorDictRowsMixIn,在默认情况下cursor方法返回的是BaseCursor类型对象,BaseCursor类型对象在执行查询后每条记录的结果以列表(list)表示。如果要返回字典(dict)表示的记录,就要设置cursorclass参数为MySQLdb.cursors.DictCursor类。
这个参数也可在调用connect方法建立连接时设置,如下:
>>> conn = MySQLdb.connect(host='192.168.1.103', port=3306, user='testacc', pass
wd='test1234', db='1dcq', cursorclass=MySQLdb.cursors.DictCursor)
>>>conn.close()
例子:
>>> import MySQLdb
>>> conn = MySQLdb.connect(host='192.168.1.103', port=3306, user='testacc',
passwd='test1234', db='1dcq')
>>> cursor = conn.cursor()
>>> cursor.execute('SELECT * FROM pagesobject LIMIT 0, 1')
2. 十 数据类型
1、int:123456....用于计算
2、bool:True、False。用户判断。‘
3、str:存储少量数据,进行操作
4、list:列表。百万级、千万级。[]
5、元祖:只读列表。()
6、字典:键值对组成。{}
7、集合:
1、.bit_length()
转换为二进制最少的位数
输出
表示True、False。
1、int类型和bool值转换
2、bool值和int类型转换
应用: 写while语句时候需要用到while True。运行的时候True需要转换成1去运行。如果直接写while 1:运行速度更快,效率更高。
3、str和bool转换
1、字符串的索引与切片
1.1.索引:既字符的占位,不影响原本值。从零开始。负数为从后开始从-1开始。
1.2.切片:顾头不顾腚原则
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
1、增 append insert extend
①append
②insert
③extend
2、删 pop remove clean del
①pop安装索引删除
②remove 按照元素删除
③clean 清空
④del 直接清空变量或者切片删除
3、改
①根据索引改
②根据切片改
4、查
①
②查每个元素
5、公共方法
①len 列表元素
②count 出现次数
②inde索引
③sort 排序
·(正)
·(倒)
④reverse (列表倒叙显示)
元祖为只读列表,不可以修改,但是元祖里的列表可以修改。
优点:二分法查找。查询速度快。存储大量的关系型数据。
①有覆盖无增加
②无增加,有不动
①pop 有返回值(可以返回值,不会报错)
②popitem 随机删除
③clear清空字典
④删除字典del
①
②update 有覆盖,没有添加
1、
2、get
3. python中列表和元组之间有什么区别
除了元组是不可变的之外,还应有语义上的区别来指导它们的用法。元组是异构数据结构(即它们的条目具有不同的含义),而列表是同类序列。元组具有结构,列表具有顺序。
使用这种区别可以使代码更加明确和易于理解。
一个示例是成对的页和行号,以成对参考书中的位置,如:
my_location = (42, 11) # page number, line number
然后,可以将其用作字典中的键来存储有关位置的注释。另一方面,列表可用于存储多个位置。自然地,人们可能想在列表中添加或删除位置,因此使列表可变是有意义的。另一方面,从现有位置添加或删除项目没有意义-因此,元组是不可变的。
在某些情况下,可能想更改现有位置元组中的项目,例如在页面的各行中进行迭代时。但是元组不变性迫使您为每个新值创建一个新的位置元组。从表面上看,这似乎很不方便,但是使用这样的不可变数据是值类型和函数式编程技术的基石,它可以具有很多优点。
官方Python文档也提到了这一点
“组是不可变的,并且通常包含一个异类序列…”。
在像Haskell这样的静态类型语言中,元组中的值通常具有不同的类型,并且元组的长度必须固定。在列表中,所有值都具有相同的类型,并且长度不是固定的。因此区别非常明显。