{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 6.2 列表的创建"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"列表的创建主要有以下几种方法:\n",
"\n",
"(1)将用方括号“<font color=Red>__[]__</font>”括起来的一组数据赋值给一个变量,数据可以是多个,也可以是0个,数据个数为0时创建一个空列表。\n",
"\n",
"(2)使用<font color=Red>__list()__</font>函数,将元组、range对象、字符串、字典的键、集合或其它类型的可迭代对象类型的数据转换为列表,当参数为空时生成一个空列表。\n",
"\n",
"(3)使用<font color=Red>__split()__</font>函数将一个字符串按指定特符切分后,转为列表。"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3, 4, 5, 6, 7]\n",
"[]\n",
"[1, 2, 3, 4, 5]\n",
"[0, 1, 2, 3, 4]\n",
"['1', '2', '3', '4', '5']\n",
"['我', '是', '中', '国', '人']\n"
]
}
],
"source": [
"Ls = [3,4,5,6,7]\n",
"print(Ls)\n",
"\n",
"print(list()) # list()函数的参数为空时,产生一个空列表,输出结果为:[]\n",
"L1= list((1,2,3,4,5)) # 将元组(1,2,3,4,5) 转为列表\n",
"print(L1) # 输出结果为:[1, 2, 3, 4, 5]\n",
"L2 = list(range(5)) # 将range对象转为列表\n",
"print(L2) # 输出结果为:[0, 1, 2, 3, 4]\n",
"L3 = list('12345') # 将字符串转为列表\n",
"print(L3) # 输出结果为:['1', '2', '3', '4', '5']\n",
"s = '我,是,中,国,人' # 这是一个字符串\n",
"L = s.split(',') # 根据逗号(,)对字符串s进行切分并转为列表\n",
"print(L) # 输出结果为:['我', '是', '中', '国', '人']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"由于列表中可以包含不同类型的数据,各元素可能占用空间大小不同,所以在创建列表时,Python采用<font color=Red>__动态分配__</font>的方法进行数据存储,数据存储在大小不一、不连续的内存单元中,以提高内存的利用率。\n",
"\n",
"但随之带来的问题是,当列表中的数据项较多时,遍历列表的效率会较低,遍历时间较长。因此在访问数据量较大的列表时,一般会根据所解决问题的需求来采用适当的方法提高效率,比如减少循环次数,或转换为集合或字典及使用相关方法等等。\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}