Is it possible to use Python List Compilation without repetition?

Asked 2 years ago, Updated 2 years ago, 24 views

for example There's a list called a = [] If there may be an empty value when adding a value using a repeat or conditional statement, as shown in the following equation I wonder if I can make a list compilation.

if not a:
    pass
else:
    a.append(value)

This is...

print(sum[if not a  pass else a.append(value)])

If there's no price like this, I want to make you do something if it's going over, but even if you google it, There are all For statements in it, so I wonder if I have to use the For statements and the If statements together.

python

2022-09-22 15:12

3 Answers

Although it is not list compliance, filter would be useful in this case.

You can write it like this. Let's say you only take 1 out of the list a

a = [1, 2, 3, 2, 5, 1, 7, 1]
b = list(filter(lambda x: x == 1, a))
print(b)

You can use a code like this.


2022-09-22 15:12

Yes, you can.

List Compensation is briefly,

[Value.Method for value in set if condition]

Because it's a concept, the example sentence you mentioned

if not A:
    pass
else:
    a.append(value)

If you translate (?) directly into the list,

[value for value in a if not A] #It's a little awkward...

This is.

Let me show you some simple examples.

# Example 1) I want to output the sum of integers that are multiple of 3 or 5 in the list
a = [1,2,3,4,5,6,7,8,9,10]
print(sum([i for i in a if i % 3 == 0 or i % 5 == 0]))
# Result: 33

# e.g. 2) Select only strings with a length of 4 or greater from the string list and use uppercase letters, and lowercase letters for the rest
List = ["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten"]
print([value.upper() iflen(value) > 3 else value.lower() for value in list ])
# Results: ["one", "two", "THREE", "FOUR", "FIVE", "six", "SEVEN", "EIGHT", "NINE", "ten"]


#Example 3) It doesn't have to be a method.
print (["even" if value %2 == 0 else "odd" for value in a])
#Result: [Odd number, even number, even number, even number, even number, even number, even number, even number, even number, odd number, even number, even number, even number, even number]

Please ask more specific questionsh

It's been a long time;


2022-09-22 15:12

If you add...

numbers = [1, 2, 3, 4, 5, 5, 5 , 7, 8, 9, 10]
summation = sum([number for number in numbers if number == 5])
print (summation)

If you want to select a specific number and save it to a new list,


get_num = [number for number in numbers if number ==5]
print(get_num)


2022-09-22 15:12

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.