<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Yuan]]></title><description><![CDATA[Yuan]]></description><link>https://yuannn.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 07:23:07 GMT</lastBuildDate><atom:link href="https://yuannn.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Python -- List]]></title><description><![CDATA[什么是列表
列表由一系列按特定顺序排列的元素组成。 你可以创建包含字母表中所有字母、数字0～9或所有家庭成员姓名的列表；也可以将任何东西加入列表中，其中的元素之间可以没有任何关系。
bicycles = ['trek', 'cannondale', 'redline', 'specialized']


创建数值列表
使用range()
numbers = list(range(1,6))

输出结果：
[1, 2, 3, 4, 5]


还可以添加步长
numbers = list(range...]]></description><link>https://yuannn.hashnode.dev/python-list</link><guid isPermaLink="true">https://yuannn.hashnode.dev/python-list</guid><dc:creator><![CDATA[Kivi Yuan]]></dc:creator><pubDate>Sun, 29 Jan 2023 13:35:49 GMT</pubDate><content:encoded><![CDATA[<h1 id="heading-5lua5lmi5piv5yix6kgo">什么是列表</h1>
<p><strong>列表由一系列按特定顺序排列的元素组成。</strong> 你可以创建包含字母表中所有字母、数字0～9或所有家庭成员姓名的列表；也可以将任何东西加入列表中，其中的元素之间可以没有任何关系。</p>
<pre><code class="lang-python">bicycles = [<span class="hljs-string">'trek'</span>, <span class="hljs-string">'cannondale'</span>, <span class="hljs-string">'redline'</span>, <span class="hljs-string">'specialized'</span>]
</code></pre>
<p><br /></p>
<h3 id="heading-5yib5bu65pww5yc85yix6kgo">创建数值列表</h3>
<p>使用<code>range()</code></p>
<pre><code class="lang-python">numbers = list(range(<span class="hljs-number">1</span>,<span class="hljs-number">6</span>))
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>]
</code></pre>
<p><br /></p>
<p>还可以添加步长</p>
<pre><code class="lang-python">numbers = list(range(<span class="hljs-number">2</span>,<span class="hljs-number">11</span>,<span class="hljs-number">2</span>))
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-number">2</span>, <span class="hljs-number">4</span>, <span class="hljs-number">6</span>, <span class="hljs-number">8</span>, <span class="hljs-number">10</span>]
</code></pre>
<p><br /></p>
<p>创建平方列表</p>
<pre><code class="lang-python">squares = []￼
<span class="hljs-keyword">for</span> value <span class="hljs-keyword">in</span> range(<span class="hljs-number">1</span>,<span class="hljs-number">11</span>):￼
    squares.append(value**<span class="hljs-number">2</span>)￼

print(squares)
print(min(squares))
print(max(squares))
print(sum(squares))
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-number">1</span>, <span class="hljs-number">4</span>, <span class="hljs-number">9</span>, <span class="hljs-number">16</span>, <span class="hljs-number">25</span>, <span class="hljs-number">36</span>, <span class="hljs-number">49</span>, <span class="hljs-number">64</span>, <span class="hljs-number">81</span>, <span class="hljs-number">100</span>]
<span class="hljs-number">1</span>
<span class="hljs-number">100</span>
<span class="hljs-number">385</span>
</code></pre>
<p><br /></p>
<h3 id="heading-5yix6kgo6kej5p6q">列表解析</h3>
<p>列表解析将for循环和创建新元素的代码合并成一行，并自动附加新元素。</p>
<pre><code class="lang-python">squares = [value**<span class="hljs-number">2</span> <span class="hljs-keyword">for</span> value <span class="hljs-keyword">in</span> range(<span class="hljs-number">1</span>, <span class="hljs-number">11</span>)]￼ print(squares)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-number">1</span>, <span class="hljs-number">4</span>, <span class="hljs-number">9</span>, <span class="hljs-number">16</span>, <span class="hljs-number">25</span>, <span class="hljs-number">36</span>, <span class="hljs-number">49</span>, <span class="hljs-number">64</span>, <span class="hljs-number">81</span>, <span class="hljs-number">100</span>]
</code></pre>
<hr />
<h1 id="heading-5ake77yi5zyo5yix6kgo5lit5re75yqg5ywd57sg77yj">增（在列表中添加元素）</h1>
<ul>
<li><code>append()</code></li>
</ul>
<p>在列表末尾添加元素</p>
<pre><code class="lang-python">motorcycles = [<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]￼
print(motorcycles)

motorcycles.append(<span class="hljs-string">'ducati'</span>)￼
print(motorcycles)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]
[<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>, <span class="hljs-string">'ducati'</span>]
</code></pre>
<p><br /></p>
<ul>
<li><code>insert()</code></li>
</ul>
<p>在列表任何位置添加新元素。需要指定新元素的索引和值。</p>
<pre><code class="lang-python">motorcycles = [<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]￼

motorcycles.insert(<span class="hljs-number">0</span>, <span class="hljs-string">'ducati'</span>)￼  
print(motorcycles)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'ducati'</span>, <span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]
</code></pre>
<hr />
<h1 id="heading-5yig77yi5luo5yix6kgo5lit5yig6zmk5ywd57sg77yj">删（从列表中删除元素）</h1>
<ul>
<li><code>del</code></li>
</ul>
<p>如果知道要删除的元素在列表中的位置，可使用del语句。使用del语句将值从列表中删除后，你就无法再访问它了。</p>
<pre><code class="lang-python">motorcycles = [<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]￼  
print(motorcycles)￼

<span class="hljs-keyword">del</span> motorcycles[<span class="hljs-number">0</span>]￼
print(motorcycles)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]￼
[<span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]
</code></pre>
<p><br /></p>
<ul>
<li><code>pop()</code></li>
</ul>
<p>可以使用pop()来删除列表中任意位置的元素，只需在圆括号中指定要删除元素的索引即可。如果没有指定索引，则删除最后一个元素。</p>
<pre><code class="lang-python">motorcycles = [<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]

first_owned = motorcycles.pop(<span class="hljs-number">0</span>)
print(<span class="hljs-string">f"The first motorcycle I owned was a <span class="hljs-subst">{first_owned.title()}</span>."</span>)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">The first motorcycle I owned was a Honda.
</code></pre>
<p><br /></p>
<ul>
<li><code>remove()</code></li>
</ul>
<p>如果只知道要删除的元素的值，可使用方法remove()。</p>
<pre><code class="lang-python">motorcycles = [<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>, <span class="hljs-string">'ducati'</span>]￼
print(motorcycles)

motorcycles.remove(<span class="hljs-string">'ducati'</span>)
print(motorcycles)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>, <span class="hljs-string">'ducati'</span>]
[<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]
</code></pre>
<p><strong>Note</strong> 方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次，就需要使用循环来确保将每个值都删除。 </p>
<hr />
<h1 id="heading-5pl77yi5pl6ki5yix6kgo77yj">查（查询列表）</h1>
<p>打印列表内部表示和访问列表的任意元素</p>
<pre><code class="lang-python">bicycles = [<span class="hljs-string">'trek'</span>, <span class="hljs-string">'cannondale'</span>, <span class="hljs-string">'redline'</span>, <span class="hljs-string">'specialized'</span>]￼
print(bicycles)
print(bicycles[<span class="hljs-number">0</span>])
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'trek'</span>, <span class="hljs-string">'cannondale'</span>, <span class="hljs-string">'redline'</span>, <span class="hljs-string">'specialized'</span>]
trek
</code></pre>
<p><br /></p>
<p><strong>遍历整个列表</strong>
用for循环</p>
<pre><code class="lang-python">magicians = [<span class="hljs-string">'alice'</span>, <span class="hljs-string">'david'</span>, <span class="hljs-string">'carolina'</span>]
<span class="hljs-keyword">for</span> magician <span class="hljs-keyword">in</span> magicians:￼
    print(magician)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">alice￼
david￼
carolina
</code></pre>
<p><br />
<strong>切片</strong>
要创建切片，可指定要使用的第一个元素和最后一个元素的索引。与函数range()一样，Python在到达第二个索引之前的元素后停止。要输出列表中的前三个元素，需要指定索引0和3，这将返回索引为0、1和2的元素。</p>
<pre><code class="lang-python">players = [<span class="hljs-string">'charles'</span>, <span class="hljs-string">'martina'</span>, <span class="hljs-string">'michael'</span>, <span class="hljs-string">'florence'</span>, <span class="hljs-string">'eli'</span>]
print(players[<span class="hljs-number">0</span>:<span class="hljs-number">3</span>])
print(players[<span class="hljs-number">2</span>:])
print(players[<span class="hljs-number">-3</span>:])
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'charles'</span>, <span class="hljs-string">'martina'</span>, <span class="hljs-string">'michael'</span>]
[<span class="hljs-string">'michael'</span>, <span class="hljs-string">'florence'</span>, <span class="hljs-string">'eli'</span>]
[<span class="hljs-string">'michael'</span>, <span class="hljs-string">'florence'</span>, <span class="hljs-string">'eli'</span>]
</code></pre>
<p><strong>注意</strong> 可在表示切片的方括号内指定第三个值。这个值告诉Python在指定范围内每隔多少元素提取一个。</p>
<hr />
<h1 id="heading-5ps577yi5lu5ps55ywd57sg55qe5yc877yj">改（修改元素的值）</h1>
<p>修改列表元素，可指定列表名和要修改的元素的索引，再指定该元素的新值。</p>
<pre><code class="lang-python">motorcycles = [<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]￼ 
print(motorcycles)

motorcycles[<span class="hljs-number">0</span>] = <span class="hljs-string">'ducati'</span>
print(motorcycles)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'honda'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]￼
[<span class="hljs-string">'ducati'</span>, <span class="hljs-string">'yamaha'</span>, <span class="hljs-string">'suzuki'</span>]
</code></pre>
<p><br /></p>
<p><strong><code>sort()</code></strong>
对列表按字母顺序进行<strong>永久</strong>排序。</p>
<pre><code class="lang-python">cars = [<span class="hljs-string">'bmw'</span>, <span class="hljs-string">'audi'</span>, <span class="hljs-string">'toyota'</span>, <span class="hljs-string">'subaru'</span>]
cars.sort()
print(cars)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'audi'</span>, <span class="hljs-string">'bmw'</span>, <span class="hljs-string">'subaru'</span>, <span class="hljs-string">'toyota'</span>]
</code></pre>
<p><code>sort(reverse=True)</code>是按相反方向排序。
<br />
<strong><code>sorted()</code></strong>
要保留列表元素原来的排列顺序，同时以特定的顺序呈现它们，可使用函数sorted()。函数sorted()让你能够按特定顺序显示列表元素，同时不影响它们在列表中的原始排列顺序。</p>
<pre><code class="lang-python">cars = [<span class="hljs-string">'bmw'</span>, <span class="hljs-string">'audi'</span>, <span class="hljs-string">'toyota'</span>, <span class="hljs-string">'subaru'</span>]

print(<span class="hljs-string">"Here is the original list:"</span>)￼  
print(cars)

print(<span class="hljs-string">"\nHere is the sorted list:"</span>)
print(sorted(cars))

print(<span class="hljs-string">"\nHere is the original list again:"</span>)
print(cars)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">Here <span class="hljs-keyword">is</span> the original list:￼  
[<span class="hljs-string">'bmw'</span>, <span class="hljs-string">'audi'</span>, <span class="hljs-string">'toyota'</span>, <span class="hljs-string">'subaru'</span>]￼  

Here <span class="hljs-keyword">is</span> the sorted list:￼  
[<span class="hljs-string">'audi'</span>, <span class="hljs-string">'bmw'</span>, <span class="hljs-string">'subaru'</span>, <span class="hljs-string">'toyota'</span>]￼￼

Here <span class="hljs-keyword">is</span> the original list again:￼  
[<span class="hljs-string">'bmw'</span>, <span class="hljs-string">'audi'</span>, <span class="hljs-string">'toyota'</span>, <span class="hljs-string">'subaru'</span>]
</code></pre>
<p><br /></p>
<p><strong><code>reverse()</code></strong>
要反转列表元素的排列顺序，可使用方法reverse()。</p>
<pre><code class="lang-python">cars = [<span class="hljs-string">'bmw'</span>, <span class="hljs-string">'audi'</span>, <span class="hljs-string">'toyota'</span>, <span class="hljs-string">'subaru'</span>]￼
print(cars)￼

cars.reverse()￼
print(cars)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">[<span class="hljs-string">'bmw'</span>, <span class="hljs-string">'audi'</span>, <span class="hljs-string">'toyota'</span>, <span class="hljs-string">'subaru'</span>]￼
[<span class="hljs-string">'subaru'</span>, <span class="hljs-string">'toyota'</span>, <span class="hljs-string">'audi'</span>, <span class="hljs-string">'bmw'</span>]
</code></pre>
<hr />
<h1 id="heading-5asn5yi25yix6kgo">复制列表</h1>
<pre><code class="lang-python">my_foods = [<span class="hljs-string">'pizza'</span>, <span class="hljs-string">'falafel'</span>, <span class="hljs-string">'carrot cake'</span>]
friend_foods = my_foods[:]￼  

print(<span class="hljs-string">"My favorite foods are:"</span>)￼  
print(my_foods)￼
￼
print(<span class="hljs-string">"\nMy friend's favorite foods are:"</span>)￼
print(friend_foods)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">My favorite foods are:￼
[<span class="hljs-string">'pizza'</span>, <span class="hljs-string">'falafel'</span>, <span class="hljs-string">'carrot cake'</span>]￼

My friend<span class="hljs-string">'s favorite foods are:￼
['</span>pizza<span class="hljs-string">', '</span>falafel<span class="hljs-string">', '</span>carrot cake<span class="hljs-string">']</span>
</code></pre>
<hr />
<h1 id="heading-5ywd57ue">元组</h1>
<p>有时候需要创建一系列<strong>不可修改</strong>的元素，元组可以满足这种需求。Python将不能修改的值称为不可变的，而不可变的列表被称为元组。</p>
<h2 id="heading-5a6a5lmj5ywd57ue">定义元组</h2>
<pre><code class="lang-python">dimensions = (<span class="hljs-number">200</span>, <span class="hljs-number">50</span>)
print(dimensions[<span class="hljs-number">0</span>])￼ 
print(dimensions[<span class="hljs-number">1</span>])
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python"><span class="hljs-number">200</span>
<span class="hljs-number">50</span>
</code></pre>
<h2 id="heading-6ygn5y6g5ywd57ue">遍历元组</h2>
<p>用for循环，与列表一样。</p>
<h2 id="heading-5lu5ps55ywd57ue5yy6yep">修改元组变量</h2>
<p>虽然不能修改元组的元素，但可以给存储元组的变量赋值。因此，如果要修改前述矩形的尺寸，可重新定义整个元组：</p>
<pre><code class="lang-python">dimensions = (<span class="hljs-number">200</span>, <span class="hljs-number">50</span>)￼  
print(<span class="hljs-string">"Original dimensions:"</span>)￼ 
<span class="hljs-keyword">for</span> dimension <span class="hljs-keyword">in</span> dimensions:￼     
    print(dimension)￼

dimensions = (<span class="hljs-number">400</span>, <span class="hljs-number">100</span>)
print(<span class="hljs-string">"\nModified dimensions:"</span>)￼  
<span class="hljs-keyword">for</span> dimension <span class="hljs-keyword">in</span> dimensions:
    print(dimension)
</code></pre>
<p>输出结果：</p>
<pre><code class="lang-python">Original dimensions:￼
<span class="hljs-number">200</span>￼
<span class="hljs-number">50</span>￼

Modified dimensions:￼
<span class="hljs-number">400</span>￼
<span class="hljs-number">100</span>
</code></pre>
]]></content:encoded></item></channel></rss>