What does [:] mean?

前端 未结 6 1506
时光取名叫无心
时光取名叫无心 2020-11-27 02:33

I\'m analyzing some Python code and I don\'t know what

pop = population[:]

means. Is it something like array lists in Java or like a bi-di

相关标签:
6条回答
  • 2020-11-27 02:59

    It might also help to know that a list slice in general makes a copy of part of the list. E.g. population[2:4] will return a list containing population[2] and population[3] (slicing is right-exclusive). Leaving away the left and right index, as in population[:] they default to 0 and length(population) respectively, thereby selecting the entire list. Hence this is a common idiom to make a copy of a list.

    0 讨论(0)
  • 2020-11-27 03:02

    well... this really depends on the context. Ultimately, it passes a slice object (slice(None,None,None)) to one of the following methods: __getitem__, __setitem__ or __delitem__. (Actually, if the object has a __getslice__, that will be used instead of __getitem__, but that is now deprecated and shouldn't be used).

    Objects can do what they want with the slice.

    In the context of:

    x = obj[:]
    

    This will call obj.__getitem__ with the slice object passed in. In fact, this is completely equivalent to:

    x = obj[slice(None,None,None)]
    

    (although the former is probably more efficient because it doesn't have to look up the slice constructor -- It's all done in bytecode).

    For most objects, this is a way to create a shallow copy of a portion of the sequence.

    Next:

    x[:] = obj
    

    Is a way to set the items (it calls __setitem__) based on obj.

    and, I think you can probably guess what:

    del x[:]
    

    calls ;-).

    You can also pass different slices:

    x[1:4]
    

    constructs slice(1,4,None)

    x[::-1]
    

    constructs slice(None,None,-1) and so forth. Further reading: Explain Python's slice notation

    0 讨论(0)
  • 2020-11-27 03:02

    [:]
    used for limiter or slicing in array , hash
    eg:
    [1:5] for displaying values between 1 inclusive and 5 exclusive i.e 1-4
    [start:end]

    basically used in array for slicing , understand bracket accept variable that mean value or key to display, and " : " is used to limit or slice the entire array into packets .

    0 讨论(0)
  • 2020-11-27 03:03

    It is a slice from the beginning of the sequence to the end, usually producing a shallow copy.

    (Well, it's more than that, but you don't need to care yet.)

    0 讨论(0)
  • 2020-11-27 03:06

    It is an example of slice notation, and what it does depends on the type of population. If population is a list, this line will create a shallow copy of the list. For an object of type tuple or a str, it will do nothing (the line will do the same without [:]), and for a (say) NumPy array, it will create a new view to the same data.

    0 讨论(0)
  • 2020-11-27 03:25

    It creates a copy of the list, versus just assigning a new name for the already existing list.

    0 讨论(0)
提交回复
热议问题