官术网_书友最值得收藏!

Lists

Lists are probably the most used built-in data structures in Python because they can be composed of any number of other data types. They are a simple representation of arbitrary objects. Like strings, they are indexed by integers starting with zero. The following table contains the most commonly used list methods and their descriptions:

When we are working with lists, and other container objects, it is important to understand the internal mechanism that Python uses to copy them. Python creates real copies only if it has to. When we assign the value of a variable to another variable, both of these variables point to the same memory location. A new slot in memory will only be allocated if one of the variables changes. This has important consequences for mutable compound objects such as lists. Consider the following code:

Here, both the list1 and list2 variables point to the same slot in memory. When we change the y variable to 4, we are changing the same y variable that list1 is pointing to.

An important feature of list's is that they can contain nested structures, that is, other lists, for example:

We can access the lists values using the bracket operators and since lists are mutable, they are copied in place. The following example demonstrates how we can use this to update elements; for example, here we are raising the price of flour by 20 percent:

A common and very intuitive way to create lists from expressions is using list comprehensions. This allows us to create a list by writing an expression directly into the list, for example:

List comprehensions can be quite flexible; for example, consider the following code. It essentially shows two different ways to performs a function composition, where we apply one function (x * 4) to another (x * 2). The following code prints out two lists representing the function composition of f1 and f2 calculated first using a for loop and then using a list comprehension:

    def f1(x): return x*2 
def f2(x): return x*4

lst = []
for i in range(16):
lst.append(f1(f2(i)))

print(lst)

print([f1(x) for x in range(64) if x in [f2(j) for j in range(16)]])

The first line of output is from the for loop construct. The second is from the list comprehension expression:

List comprehensions can also be used to replicate the action of nested loops in a more compact form. For example, we multiply each of the elements contained within list1 with each other:

We can also use list comprehensions with other objects such as strings, to build more complex structures. For example, the following code creates a list of words and their letter count:

As we will see, lists form the foundation of many of the data structures we will look at. Their versatility, ease of creation, and use enables them to build more specialized and complex data structures.

主站蜘蛛池模板: 罗平县| 精河县| 贡觉县| 玉龙| 和顺县| 唐海县| 呼图壁县| 西乌珠穆沁旗| 分宜县| 温宿县| 平塘县| 普格县| 博爱县| 泰州市| 吉林市| 阿鲁科尔沁旗| 广灵县| 胶南市| 军事| 西林县| 太仆寺旗| 五华县| 大埔县| 东阿县| 牟定县| 吐鲁番市| 清苑县| 武安市| 宁远县| 江北区| 金平| 多伦县| 张掖市| 林芝县| 凤山县| 汉寿县| 新丰县| 海城市| 星座| 开封市| 兴文县|