Python训练营—Tesk2—python基础练习——数据结构大汇总

               python基础练习——数据结构大汇总

 

目录

               python基础练习——数据结构大汇总

一、列表

1、列表的定义

2、列表的创建

3、向列表中添加元素

4、删除列表中的元素

5、获取列表中的元素

6、列表的常用操作符

7、列表的其他方法

二、元组

1、创建和访问一个元组

2、更新和删除一个元组

3、元组相关的操作符

4、内置方法

5、解压元组

三、字符串

1、字符串的定义

2、字符串的切片与索引

3、字符串的常用内置方法

4、字符串格式化

四、字典

1、可变类型与不可变类型

2、创建和访问字典

3、字典的内置方法

五、集合

1、集合的创建

2、访问集合中的元素

3、集合的内置方法

4、不可变集合


一、列表

1、列表的定义

        列表是有序集合,没有固定大小,能够保存任意数量任意类型的python对象,语法为[元素1,元素2,……,元素n]

2、列表的创建

        注意:list中保存的是对象的指针

    (1)创建一个普通列表

            x = [1,2,3,4,5]

    (2)利用range()创建列表

            x = list(range(1,11,2)) # x = [1,3,4,5,9]

    (3)利用推导式创建列表

            x = [i for i in range(1,11,2)] # x = [1,3,5.7,9]

    (4)创建一个混合列表

            x = [1, ‘python’, 3.14, [1,2,3]]

    (5)创建一个空列表

            x = []

 

3、向列表中添加元素

(1)list.append(obj)

        在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在列表中保持着原结构类型

(2)list.extend(seq)

        在列表末尾一次性追加另一个序列中的多个值

(3)list.insert(index, obj)

        在编号index位置插入元素

4、删除列表中的元素

(1)list.remove(obj)

        删除列表中某个值的第一个匹配项

(2)list.pop([index=-1])

        删除列表中的下标为index的元素,默认为最后一个,并返回该元素的值。

(3)del list[开始下标值:结束下标值]

(4)如果要从列表中删除一个元素,并且不再以任何形式使用它,就是用 del语句;如果要在删除以后还能继续使用,就用pop语句

5、获取列表中的元素

(1)通过元素索引值,从列表中获取单个元素。

(2)通过将索引指定为-1,获取最后一个元素,-2获取倒数第二个元素,以此类推。

(3)列表切片获取多个元素

        list[start: stop: step]

6、列表的常用操作符

        等号操作符:==

        连接操作符:+

        重复操作符:*

        成员关系操作符:in, not in

        等号操作符只有元素和元素位置都相同时才返回True

        列表拼接方式:+、*

7、列表的其他方法

(1)list.count(obj)

        统计某个元素在列表中出现的次数

(2)list.index(x, start, stop)

        从列表中的start位置到stop位置找出元素x第一次出现的索引位置

(3)list.reverse()

        反向列表中的元素

(4)list.sort(key=None, reverse=False)

        当列表中嵌套列表时,可通过指定key指定对内部列表中的第几个元素进行排序。

        reverse=False(升序),reverse=True(降序)

 

二、元组

1、创建和访问一个元组

        元组与列表类似,不同之处在于元组被定义后不可修改。

       定义方式与列表相同,只是元组用(),列表用[]

2、更新和删除一个元组

        元组有不可修改性,不能直接给元组赋值,但是只要元组中的元素是可修改的,我们就可以其元素的值。

3、元组相关的操作符

        与列表相同

4、内置方法

        tuple.count(obj):记录obj在元组中的出现次数

        tuple.index(obj):获取obj在元组中的索引

5、解压元组

        定义与元组相同结构的元组来接收解压出来的元素,一一对应的。

        若只想要某一些元素,其他的可以用*_来接收

 

三、字符串

1、字符串的定义

(1)使用单引号或双引号定义字符串

(2)常用转义字符

        \\:反斜杠字符

        \’:单引号

        \”:双引号

        \n:换行

        \t:制表符(TAB)

        \r:回车

(3)原始字符串只需要在字符串前加一个r即可

(4)三引号允许一个字符串横跨多行

2、字符串的切片与索引

(1)类似于元组具有不可修改性

(2)切片str[start:end],包含start,不包含end

3、字符串的常用内置方法

(1)str.capitalize():将字符串的第一个字符转换为大写

(2)str.lower():将字符串所有大写字符转换为小写

(3)str.upper():将字符串所有小写字符转换为大写

(4)str.swapcase():将字符串中大写转换为小写,小写转换为大写

(5)str.count(str, start, end):返回字符串str在整个字符串的start到end位置出现的次数。

(6)endswith(suffix, start, end):检查字符串是否以子字符串suffix结尾

(7)startswith(substr, start, end):检查字符串是否以子字符串substr开始

(8)find(str, start, end):检查str是否包含在字符串中

(9)rfind(str, start, end):从右边开始检查str是否包含在字符串中。

(10)isnumeric():检查字符串中是否只包含数字字符

(11)ljust(width, fillchar)/rjust(width, fillchar):返回原字符串左对齐/右对齐,并使用fillchar字符填充至width长度的新字符串

(12)lstrip(char)/rstrip(char)/strip(char):截掉字符串左边/右边/左右的空格或指定字符

(13)splitlines(keepends):按照行(\r, \r\n, \n)分割,keepends为False时不保留换行符,为True时包留换行符

(14)maketrans(intab, outtab):创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串,表示转换的目标。

(15)translate(table, deletechars=””):根据参数table给出的表,转换字符串的字符,要过滤掉的字符放到deleteachars中

4、字符串格式化

(1)format格式化函数

        str = “{} Love {}”.format(‘I’, ‘python’)

(2)字符串格式化符号

        

 

(3)格式化操作符辅助指令

        

 

 

四、字典

1、可变类型与不可变类型

        数值、字符和元组是不可变类型

        列表、集合和字典是可变类型

        判断是否可变的方法:

                hash(X),若不报错则是不可变,反之就是可变

2、创建和访问字典

(1)dic = {key1: value1, key2: value2, ……}

(2)通过构造函数dict()构造字典

        ① dict()创建一个空字典,然后通过dic[key] = value赋值

        ② dict([(key1,value1), (key2, value2), ……])

        ③ dict(key1=value1, key2=value2, ……)此方法中的key只能是字符串类型,并且创建时不能加引号。

 

3、字典的内置方法

(1)dict.fromkeys(seq, value)

        创建一个新字典,以序列seq中的元素作为key,value为所有key的初始值。

(2)dict.keys()

        返回一个可迭代对象,可以用list()函数来转换为列表,获取到字典中的所有key

(3)dict.values()

        返回一个可迭代对象,可以用list()函数来转换为列表,获取到字典中的所有value

(4)dict.items()

        返回一个可迭代对象,可以用list()函数来转换为列表,获取到字典中的所有键值对

(5)dict.get(key, default=None)

        返回指定键的值,若不存在,则返回默认值

(6)dict.setdefault(key, default=None)

        与get方法类似,不同之处在于若不存在会将键添加到字典中,值设置为默认值

(7)key in/not in dict

        判断key是否存在与字典中

(8)dict.pop(key, default)

        删除key的值,返回被删除的值

(9)del dict[key]

        删除key的值

(10)dict.popitem()

        随机删除字典中的一个键值对并返回删除后的字典

(11)dict.clear()

        清空字典

(12)dict.copy()

        复制字典

(13)dict.update(dict2)

        将dict2的键值对更新到dict中

 

五、集合

集合与字典类似,也是一组key的集合,但是集合中不存储value,只有key,没有重复的元素

1、集合的创建

(1)创建空集合只能用s = set()

        set.add():添加元素

(2)s = {元素1,元素2,元素3,……}

(3)使用set(value)函数将列表或元组转换为集合

2、访问集合中的元素

(1)使用len(s)函数获取集合的大小

(2)可以使用for循环读取集合中的数据

(3)可以通过in或not in判断元素是否在集合中

3、集合的内置方法

(1)set.add():给集合添加元素

(2)set.update(set1):更新set1的内容到set中

(3)set.remove(value):删除指定的value,若元素不存在会报错

(4)set.discard(value):删除指定的value,若不存在不会报错

(5)set.pop():随机删除一个元素

(6)set1.intersection(set2)/ set1 & set2:返回两个集合的交集

(7)set1.intersection_update(set2):在原始集合上移除两个集合不重叠的元素

(8)set1.union(set2)/ set1 | set2:返回两个集合的并集

(9)set1.difference(set2)/ set1 - set2/ set1.difference_update(set2):返回两个集合的差集

(10)set1.symmetric_difference(set2)/ set1 ^ set2/ set1.symmetric_difference_update(set2):两个集合的异或

(11)set1.issubset(set2)/ set1 <= set2:判断集合1是否被集合2包含

(12)set.isdisjoint(set):判断两个集合是不是不相交

 

4、不可变集合

        frozenset()产生一个不可添加或删除的集合

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 C# 中使用多线程读取 SQL Server 数据库表中的信息,可以使用以下步骤: 1. 创建一个 SQL 连接对象,并打开连接。 2. 创建一个 SQL 命令对象,并设置 SQL 查询语句。 3. 创建一个 SQL 数据适配器对象,并将 SQL 命令对象作为参数进行设置。 4. 创建一个数据表对象,用于存储查询结果。 5. 创建多个线程对象,并为每个线程分配一个任务。 6. 在每个线程中使用 SQL 数据适配器对象来填充数据表对象。 7. 在主线程中等待所有线程完成任务,并合并所有数据表对象。 下面是示例代码: ```csharp using System; using System.Data.SqlClient; using System.Data; using System.Threading; public class Program { static void Main(string[] args) { string connectionString = "Data Source=serverName;Initial Catalog=databaseName;Integrated Security=True;"; string query = "SELECT * FROM tableName;"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); SqlCommand command = new SqlCommand(query, connection); SqlDataAdapter adapter = new SqlDataAdapter(command); DataTable table = new DataTable(); Thread[] threads = new Thread[5]; for (int i = 0; i < threads.Length; i++) { threads[i] = new Thread(() => { adapter.Fill(table); }); threads[i].Start(); } foreach (Thread thread in threads) { thread.Join(); } // Merge all tables DataTable mergedTable = new DataTable(); foreach (DataColumn column in table.Columns) { mergedTable.Columns.Add(column.ColumnName, column.DataType); } foreach (DataRow row in table.Rows) { mergedTable.ImportRow(row); } connection.Close(); } } ``` 在上面的示例代码中,我们使用了 5 个线程来读取数据表中的信息,并将结果存储在一个数据表对象中。最后,我们合并了所有数据表对象,得到了完整的查询结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值