天天看点

元组、字典的常用方法

一、元组的常用方法

①元组方法-------count(),元组中某个元素出现的次数

<code>&gt;&gt;&gt; t_tuple</code><code>=</code><code>(</code><code>'a'</code><code>,</code><code>'b'</code><code>,</code><code>11</code><code>,</code><code>22</code><code>)</code>

<code>&gt;&gt;&gt; t_tuple.count(</code><code>'a'</code><code>)</code>

<code>1</code>

<code>&gt;&gt;&gt; t_tuple.count(</code><code>'b'</code><code>)</code>

<code>&gt;&gt;&gt; t_tuple.count(</code><code>'11'</code><code>)</code>

<code>0</code>

<code>&gt;&gt;&gt; t_tuple.count(</code><code>11</code><code>)</code>

<code>&gt;&gt;&gt;</code>

①元组方法-------index(),查找出元组中元素的下标位置,如果元素不存在,则会报错

<code>&gt;&gt;&gt; t_tuple.index(</code><code>'a'</code><code>)</code><code>0</code><code>&gt;&gt;&gt; t_tuple.index(</code><code>'b'</code><code>)</code><code>1</code><code>&gt;&gt;&gt; t_tuple.index(</code><code>11</code><code>)</code><code>2</code><code>&gt;&gt;&gt; t_tuple.index(</code><code>'c'</code><code>)Traceback (most recent call last):  </code><code>File</code> <code>"&lt;stdin&gt;"</code><code>, line </code><code>1</code><code>, </code><code>in</code> <code>&lt;module&gt;ValueError: </code><code>tuple</code><code>.index(x): x </code><code>not</code> <code>in</code> <code>tuple</code><code>&gt;&gt;&gt;</code>

二、字典及常用方法

①字典常用方法-------clear(),清除字典内容

<code>&gt;&gt;&gt; name_dict</code><code>=</code><code>{</code><code>'alex'</code><code>:</code><code>22</code><code>,</code><code>'eric'</code><code>:</code><code>26</code><code>,</code><code>'tony'</code><code>:</code><code>25</code><code>}</code>

<code>&gt;&gt;&gt; name_dict</code>

<code>{</code><code>'tony'</code><code>: </code><code>25</code><code>, </code><code>'alex'</code><code>: </code><code>22</code><code>, </code><code>'eric'</code><code>: </code><code>26</code><code>}</code>

<code>&gt;&gt;&gt; name_dict.clear()</code>

<code>{}</code>

浅拷贝

②字典常用方法-------copy(),字典浅拷贝,该拷贝纸拷贝第一层,如果子点的key或者value下还继续有字典,

<code>&gt;&gt;&gt; name_dict</code><code>=</code><code>{</code><code>'alex'</code><code>:</code><code>22</code><code>,</code><code>'eric'</code><code>:</code><code>26</code><code>,</code><code>'tony'</code><code>:</code><code>25</code><code>}&gt;&gt;&gt; name_dict.copy(){</code><code>'tony'</code><code>: </code><code>25</code><code>, </code><code>'alex'</code><code>: </code><code>22</code><code>, </code><code>'eric'</code><code>: </code><code>26</code><code>}&gt;&gt;&gt; name_dicts </code><code>=</code> <code>name_dict.copy()&gt;&gt;&gt; </code><code>print</code> <code>name_dicts{</code><code>'tony'</code><code>: </code><code>25</code><code>, </code><code>'alex'</code><code>: </code><code>22</code><code>, </code><code>'eric'</code><code>: </code><code>26</code><code>}&gt;&gt;&gt; </code><code>id</code><code>(name_dict)</code><code>39525232</code><code>&gt;&gt;&gt; </code><code>id</code><code>(name_dicts)</code><code>39524800</code><code>&gt;&gt;&gt;</code>

深拷贝

import copy

test_dict = {'a':{'b':{'c':100}}}

test02_dict=copy.deepcopy(被拷贝的字典),拷贝多层,当被拷贝的字典中二层或者二层以上中的键对应的值发生变化,通过该方法拷贝得到的字典test002_dict中的键值是不会发生变化的

为什么要拷贝?

1当进行修改时,想要保留原来的数据和修改后的数据

数字字符串 和 集合 在修改时的差异? (深浅拷贝不同的终极原因)

1在修改数据时:

2数字字符串:在内存中新建一份数据

3集合:修改内存中的同一份数据

对于集合,如何保留其修改前和修改后的数据?

1在内存中拷贝一份

③字典常用方法-------get(),获取某个key对应的值,如果该key不存在,返回None,也可以指定返回其他结果,get方法可以避免在key不存在的时候返回报错

<code>&gt;&gt;&gt; name_dict.get(</code><code>'alex'</code><code>)</code>

<code>22</code>

<code>&gt;&gt;&gt; name_dict[</code><code>'alex'</code><code>]</code>

<code>&gt;&gt;&gt; name_dict.get(</code><code>'eric'</code><code>)</code>

<code>26</code>

<code>&gt;&gt;&gt; name_dict.get(</code><code>'susan'</code><code>)</code>

<code>&gt;&gt;&gt; </code><code>print</code> <code>name_dict.get(</code><code>'susan'</code><code>)</code>

<code>None</code>

<code>&gt;&gt;&gt; </code><code>print</code> <code>name_dict.get(</code><code>'susan'</code><code>,</code><code>'OK'</code><code>)</code>

<code>OK</code>

<code>&gt;&gt;&gt; name_dict.get(</code><code>'susan'</code><code>,</code><code>'OK'</code><code>)</code>

<code>'OK'</code>

<code>&gt;&gt;&gt; </code><code>print</code> <code>name_dict[</code><code>'susan'</code><code>]</code>

<code>Traceback (most recent call last):</code>

<code>  </code><code>File</code> <code>"&lt;stdin&gt;"</code><code>, line </code><code>1</code><code>, </code><code>in</code> <code>&lt;module&gt;</code>

<code>KeyError: </code><code>'susan'</code>

④字典一般用字符串,数字,类的实例来作为key

⑤判断一个字典是否为字典用如下方法:

<code>&gt;&gt;&gt; nu_dict </code><code>=</code> <code>{</code><code>'alex'</code><code>:</code><code>18</code><code>,</code><code>'tony'</code><code>:</code><code>22</code><code>}</code>

<code>&gt;&gt;&gt; </code><code>type</code><code>(nu_dict)&lt;</code><code>type</code> <code>'dict'</code><code>&gt;</code>

<code>&gt;&gt;&gt; </code><code>type</code><code>(nu_dict) </code><code>is</code> <code>dictTrue</code>

⑥字典常用方法-------fromkeys(),可以将一个列表与定义的后面的一个值进行匹配,生成一个新的字典,该方法可以用于一个人名列表,如果要把人名列表对应每个人的个人信息,可以用到次方法

<code>&gt;&gt;&gt;a{</code><code>'a'</code><code>: </code><code>1</code><code>, </code><code>'c'</code><code>: </code><code>3</code><code>, </code><code>'b'</code><code>: </code><code>2</code><code>}</code>

<code>&gt;&gt;&gt;a.fromkeys([</code><code>1</code><code>,</code><code>2</code><code>,</code><code>3</code><code>,</code><code>4</code><code>,</code><code>5</code><code>],</code><code>'t'</code><code>){</code><code>1</code><code>: </code><code>'t'</code><code>, </code><code>2</code><code>: </code><code>'t'</code><code>, </code><code>3</code><code>: </code><code>'t'</code><code>, </code><code>4</code><code>: </code><code>'t'</code><code>, </code><code>5</code><code>: </code><code>'t'</code><code>}</code>

<code>&gt;&gt;&gt;a.fromkeys([</code><code>'alex'</code><code>,</code><code>'eric'</code><code>,</code><code>'tony'</code><code>,</code><code>'susan'</code><code>],[]){</code><code>'tony'</code><code>: [], </code><code>'alex'</code><code>: [], </code><code>'eric'</code><code>: [], </code><code>'susan'</code><code>: []}</code>

⑦字典常用方法-------items(),取出字典中所有对应的key:value

<code>&gt;&gt;&gt;name_dict </code><code>=</code> <code>{</code><code>'alex'</code><code>:</code><code>22</code><code>,</code><code>'eric'</code><code>:</code><code>24</code><code>,</code><code>'tony'</code><code>:</code><code>18</code><code>}</code>

<code>&gt;&gt;&gt;name_dict</code>

<code>{</code><code>'tony'</code><code>: </code><code>18</code><code>, </code><code>'alex'</code><code>: </code><code>22</code><code>, </code><code>'eric'</code><code>: </code><code>24</code><code>}</code>

<code>&gt;&gt;&gt;name_dict.items()</code>

<code>[(</code><code>'tony'</code><code>, </code><code>18</code><code>), (</code><code>'alex'</code><code>, </code><code>22</code><code>), (</code><code>'eric'</code><code>, </code><code>24</code><code>)]</code>

对于字典中的内容不是很多,即上百条或者上千条更甚至上万条可以用以上方法,如果上百万或千万条记录,则建议用如下方法:

<code>&gt;&gt;&gt; </code><code>for</code> <code>k </code><code>in</code> <code>name_dict:</code><code>print</code> <code>k,name_dict[k]</code>

<code>...</code>

<code>tony </code><code>18</code>

<code>alex </code><code>22</code>

<code>eric </code><code>24</code>

这样好处是只读取了字典中的key,生成一个列表,然后再拿着key去字典中找对应的value,可以节约内存,而上面的方法是在内存中生成两个列表,这样就消耗了过多的内存资源。

⑧字典常用方法-------keys(),当前所有的key打印出来

<code>&gt;&gt;&gt; name_dict{</code><code>'tony'</code><code>: </code><code>18</code><code>, </code><code>'alex'</code><code>: </code><code>22</code><code>, </code><code>'eric'</code><code>: </code><code>24</code><code>}&gt;&gt;&gt; name_dict.keys()[</code><code>'tony'</code><code>, </code><code>'alex'</code><code>, </code><code>'eric'</code><code>]&gt;&gt;&gt;</code>

⑨字典常用方法-------pop(),删除指定的键值对,只需要指定键即可

<code>&gt;&gt;&gt; name_dict.pop(</code><code>'alex'</code><code>)</code>

<code>{</code><code>'tony'</code><code>: </code><code>18</code><code>, </code><code>'eric'</code><code>: </code><code>24</code><code>}</code>

⑩字典常用方法-------del,该方法是一个全局性的,可以删除一个字典,列表,变量,元组等

<code>&gt;&gt;&gt; a</code><code>=</code><code>'alex'</code>

<code>&gt;&gt;&gt; </code><code>del</code> <code>a</code>

<code>&gt;&gt;&gt; a</code>

<code>NameError: name </code><code>'a'</code> <code>is</code> <code>not</code> <code>defined</code>

<code>&gt;&gt;&gt; b </code><code>=</code> <code>{</code><code>'ccc'</code><code>:</code><code>111</code><code>,</code><code>'ddd'</code><code>:</code><code>222</code><code>}</code>

<code>&gt;&gt;&gt; </code><code>del</code> <code>b</code>

<code>&gt;&gt;&gt; b</code>

<code>NameError: name </code><code>'b'</code> <code>is</code> <code>not</code> <code>defined</code>

<code>&gt;&gt;&gt; c </code><code>=</code> <code>(</code><code>'a'</code><code>,</code><code>2</code><code>,</code><code>'c'</code><code>,</code><code>'f'</code><code>,</code><code>22</code><code>,)</code>

<code>&gt;&gt;&gt; c</code>

<code>(</code><code>'a'</code><code>, </code><code>2</code><code>, </code><code>'c'</code><code>, </code><code>'f'</code><code>, </code><code>22</code><code>)</code>

<code>&gt;&gt;&gt; </code><code>del</code> <code>c</code>

<code>NameError: name </code><code>'c'</code> <code>is</code> <code>not</code> <code>defined</code>

字典常用方法-------setdefault()如果字典的键对应的值存在,则输出,不存在则定义一个默认值

<code>&gt;&gt;&gt; c{</code><code>7</code><code>: [], </code><code>8</code><code>: [], </code><code>9</code><code>: [], </code><code>10</code><code>: [], </code><code>11</code><code>: [], </code><code>12</code><code>: [], </code><code>13</code><code>: [], </code><code>14</code><code>: [], </code><code>15</code><code>: [], </code><code>16</code><code>: [], </code><code>17</code><code>: [], </code><code>18</code><code>: [], </code><code>19</code><code>: [], </code><code>20</code><code>: [], </code><code>21</code><code>: [], </code><code>22</code><code>: [], </code><code>23</code><code>: [], </code><code>24</code><code>: [], </code><code>25</code><code>: [], </code><code>26</code><code>: [], </code><code>27</code><code>: [], </code><code>28</code><code>: [], </code><code>29</code><code>: [], </code><code>30</code><code>: [], </code><code>31</code><code>: [], </code><code>32</code><code>: [], </code><code>33</code><code>: [], </code><code>34</code><code>: [], </code><code>35</code><code>: [], </code><code>36</code><code>: [], </code><code>37</code><code>: [], </code><code>38</code><code>: [], </code><code>39</code><code>: [], </code><code>40</code><code>: [], </code><code>41</code><code>: [], </code><code>42</code><code>: [], </code><code>43</code><code>: [], </code><code>44</code><code>: [], </code><code>45</code><code>: [], </code><code>46</code><code>: [], </code><code>47</code><code>: [], </code><code>48</code><code>: [], </code><code>49</code><code>: [], </code><code>50</code><code>: [], </code><code>51</code><code>: [], </code><code>52</code><code>: [], </code><code>53</code><code>: [], </code><code>54</code><code>: [], </code><code>55</code><code>: [], </code><code>56</code><code>: [], </code><code>57</code><code>: [], </code><code>58</code><code>: [], </code><code>59</code><code>: [], </code><code>60</code><code>: [], </code><code>61</code><code>: [], </code><code>62</code><code>: [], </code><code>63</code><code>: [], </code><code>64</code><code>: [], </code><code>65</code><code>: [], </code><code>66</code><code>: [], </code><code>67</code><code>: [], </code><code>68</code><code>: [], </code><code>69</code><code>: [], </code><code>70</code><code>: [], </code><code>71</code><code>: [], </code><code>72</code><code>: [], </code><code>73</code><code>: [], </code><code>74</code><code>: [], </code><code>75</code><code>: [], </code><code>76</code><code>: [], </code><code>77</code><code>: [], </code><code>78</code><code>: [], </code><code>79</code><code>: [], </code><code>80</code><code>: [], </code><code>81</code><code>: [], </code><code>82</code><code>: [], </code><code>83</code><code>: [], </code><code>84</code><code>: [], </code><code>85</code><code>: [], </code><code>86</code><code>: [], </code><code>87</code><code>: [], </code><code>88</code><code>: [], </code><code>89</code><code>: [], </code><code>90</code><code>: [], </code><code>91</code><code>: [], </code><code>92</code><code>: [], </code><code>93</code><code>: [], </code><code>94</code><code>: [], </code><code>95</code><code>: [], </code><code>96</code><code>: [], </code><code>97</code><code>: [], </code><code>98</code><code>: [], </code><code>99</code><code>: []}&gt;&gt;&gt; c.setdefault(</code><code>8</code><code>)[]&gt;&gt;&gt; c.setdefault(</code><code>200</code><code>)&gt;&gt;&gt; c{</code><code>7</code><code>: [], </code><code>8</code><code>: [], </code><code>9</code><code>: [], </code><code>10</code><code>: [], </code><code>11</code><code>: [], </code><code>12</code><code>: [], </code><code>13</code><code>: [], </code><code>14</code><code>: [], </code><code>15</code><code>: [], </code><code>16</code><code>: [], </code><code>17</code><code>: [], </code><code>18</code><code>: [], </code><code>19</code><code>: [], </code><code>20</code><code>: [], </code><code>21</code><code>: [], </code><code>22</code><code>: [], </code><code>23</code><code>: [], </code><code>24</code><code>: [], </code><code>25</code><code>: [], </code><code>26</code><code>: [], </code><code>27</code><code>: [], </code><code>28</code><code>: [], </code><code>29</code><code>: [], </code><code>30</code><code>: [], </code><code>31</code><code>: [], </code><code>32</code><code>: [], </code><code>33</code><code>: [], </code><code>34</code><code>: [], </code><code>35</code><code>: [], </code><code>36</code><code>: [], </code><code>37</code><code>: [], </code><code>38</code><code>: [], </code><code>39</code><code>: [], </code><code>40</code><code>: [], </code><code>41</code><code>: [], </code><code>42</code><code>: [], </code><code>43</code><code>: [], </code><code>44</code><code>: [], </code><code>45</code><code>: [], </code><code>46</code><code>: [], </code><code>47</code><code>: [], </code><code>48</code><code>: [], </code><code>49</code><code>: [], </code><code>50</code><code>: [], </code><code>51</code><code>: [], </code><code>52</code><code>: [], </code><code>53</code><code>: [], </code><code>54</code><code>: [], </code><code>55</code><code>: [], </code><code>56</code><code>: [], </code><code>57</code><code>: [], </code><code>58</code><code>: [], </code><code>59</code><code>: [], </code><code>60</code><code>: [], </code><code>61</code><code>: [], </code><code>62</code><code>: [], </code><code>63</code><code>: [], </code><code>64</code><code>: [], </code><code>65</code><code>: [], </code><code>66</code><code>: [], </code><code>67</code><code>: [], </code><code>68</code><code>: [], </code><code>69</code><code>: [], </code><code>70</code><code>: [], </code><code>71</code><code>: [], </code><code>72</code><code>: [], </code><code>73</code><code>: [], </code><code>74</code><code>: [], </code><code>75</code><code>: [], </code><code>76</code><code>: [], </code><code>77</code><code>: [], </code><code>78</code><code>: [], </code><code>79</code><code>: [], </code><code>80</code><code>: [], </code><code>81</code><code>: [], </code><code>82</code><code>: [], </code><code>83</code><code>: [], </code><code>84</code><code>: [], </code><code>85</code><code>: [], </code><code>86</code><code>: [], </code><code>87</code><code>: [], </code><code>88</code><code>: [], </code><code>89</code><code>: [], </code><code>90</code><code>: [], </code><code>91</code><code>: [], </code><code>92</code><code>: [], </code><code>93</code><code>: [], </code><code>94</code><code>: [], </code><code>95</code><code>: [], </code><code>96</code><code>: [], </code><code>97</code><code>: [], </code><code>98</code><code>: [], </code><code>99</code><code>: [], </code><code>200</code><code>: </code><code>None</code><code>}&gt;&gt;&gt; c.setdefault(</code><code>200</code><code>,</code><code>'cccc'</code><code>)&gt;&gt;&gt; c{</code><code>7</code><code>: [], </code><code>8</code><code>: [], </code><code>9</code><code>: [], </code><code>10</code><code>: [], </code><code>11</code><code>: [], </code><code>12</code><code>: [], </code><code>13</code><code>: [], </code><code>14</code><code>: [], </code><code>15</code><code>: [], </code><code>16</code><code>: [], </code><code>17</code><code>: [], </code><code>18</code><code>: [], </code><code>19</code><code>: [], </code><code>20</code><code>: [], </code><code>21</code><code>: [], </code><code>22</code><code>: [], </code><code>23</code><code>: [], </code><code>24</code><code>: [], </code><code>25</code><code>: [], </code><code>26</code><code>: [], </code><code>27</code><code>: [], </code><code>28</code><code>: [], </code><code>29</code><code>: [], </code><code>30</code><code>: [], </code><code>31</code><code>: [], </code><code>32</code><code>: [], </code><code>33</code><code>: [], </code><code>34</code><code>: [], </code><code>35</code><code>: [], </code><code>36</code><code>: [], </code><code>37</code><code>: [], </code><code>38</code><code>: [], </code><code>39</code><code>: [], </code><code>40</code><code>: [], </code><code>41</code><code>: [], </code><code>42</code><code>: [], </code><code>43</code><code>: [], </code><code>44</code><code>: [], </code><code>45</code><code>: [], </code><code>46</code><code>: [], </code><code>47</code><code>: [], </code><code>48</code><code>: [], </code><code>49</code><code>: [], </code><code>50</code><code>: [], </code><code>51</code><code>: [], </code><code>52</code><code>: [], </code><code>53</code><code>: [], </code><code>54</code><code>: [], </code><code>55</code><code>: [], </code><code>56</code><code>: [], </code><code>57</code><code>: [], </code><code>58</code><code>: [], </code><code>59</code><code>: [], </code><code>60</code><code>: [], </code><code>61</code><code>: [], </code><code>62</code><code>: [], </code><code>63</code><code>: [], </code><code>64</code><code>: [], </code><code>65</code><code>: [], </code><code>66</code><code>: [], </code><code>67</code><code>: [], </code><code>68</code><code>: [], </code><code>69</code><code>: [], </code><code>70</code><code>: [], </code><code>71</code><code>: [], </code><code>72</code><code>: [], </code><code>73</code><code>: [], </code><code>74</code><code>: [], </code><code>75</code><code>: [], </code><code>76</code><code>: [], </code><code>77</code><code>: [], </code><code>78</code><code>: [], </code><code>79</code><code>: [], </code><code>80</code><code>: [], </code><code>81</code><code>: [], </code><code>82</code><code>: [], </code><code>83</code><code>: [], </code><code>84</code><code>: [], </code><code>85</code><code>: [], </code><code>86</code><code>: [], </code><code>87</code><code>: [], </code><code>88</code><code>: [], </code><code>89</code><code>: [], </code><code>90</code><code>: [], </code><code>91</code><code>: [], </code><code>92</code><code>: [], </code><code>93</code><code>: [], </code><code>94</code><code>: [], </code><code>95</code><code>: [], </code><code>96</code><code>: [], </code><code>97</code><code>: [], </code><code>98</code><code>: [], </code><code>99</code><code>: [], </code><code>200</code><code>: </code><code>None</code><code>}&gt;&gt;&gt;</code>

字典常用方法-------update(),将两个字典进行整合

<code>&gt;&gt;&gt; ss </code><code>=</code> <code>{</code><code>'a'</code><code>:</code><code>11</code><code>,</code><code>'bb'</code><code>:</code><code>22</code><code>,</code><code>'cc'</code><code>:</code><code>33</code><code>}</code>

<code>&gt;&gt;&gt; tt </code><code>=</code> <code>{</code><code>'a'</code><code>:</code><code>'kk'</code><code>,</code><code>'pp'</code><code>:</code><code>23</code><code>,</code><code>'rt'</code><code>:</code><code>33</code><code>}</code>

<code>&gt;&gt;&gt; ss.update(tt)</code>

<code>&gt;&gt;&gt; ss</code>

<code>{</code><code>'a'</code><code>: </code><code>'kk'</code><code>, </code><code>'rt'</code><code>: </code><code>33</code><code>, </code><code>'pp'</code><code>: </code><code>23</code><code>, </code><code>'bb'</code><code>: </code><code>22</code><code>, </code><code>'cc'</code><code>: </code><code>33</code><code>}</code>

如果ss中的键和tt中的键有重复,则以tt中的键所对应的值替换掉ss中keys对应的值,如果tt中的键值对在ss中不存在,则在ss中进行创建

字典常用方法-------values(),打印字典中所有的值

<code>&gt;&gt;&gt; ss.values()</code>

<code>[</code><code>'kk'</code><code>, </code><code>33</code><code>, </code><code>23</code><code>, </code><code>22</code><code>, </code><code>33</code><code>]</code>

<code></code>

      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1715788,如需转载请自行联系原作者

继续阅读