Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เพิ่มค่าคี่ซ้ำสองครั้งในลิสต์ Python

ในบทความนี้เราจะดูวิธีการนำลิสต์ที่มีตัวเลขคี่เป็นสมาชิก แล้วเพิ่มค่าคี่เหล่านั้นซ้ำเข้าไปในลิสต์เดิมอีกครั้ง ซึ่งหมายถึง ถ้าตัวเลขคี่อยู่ในลิสต์ 2 ครั้ง หลังจากประมวลผลแล้ว จะกลายเป็น 4 ครั้งในลิสต์เดียวกัน

สำหรับความต้องการนี้ มีหลายวิธีการ ไม่ว่าจะเป็นการใช้ลูป for และเงื่อนไข in หรือใช้โมดูล itertools เรายังตรวจสอบเงื่อนไขคี่โดยการหารแต่ละสมาชิกด้วย 2

ตัวอย่าง

from itertools import chain
import numpy as np

data_1 = [2, 11, 5, 24, 5]
data_2 = [-1, -2, -9, -12]
data_3 = [27/3, 49/7, 25/5]
odd_repeat_element_3 = []

# ใช้ for และ in
odd_repeat_element = [values for i in data_1 for values in (i,) * (i % 2 + 1)]
print("ค่าอินพุตที่กำหนด:", data_1)
print("ลิสต์ที่มีค่าคี่ซ้ำ:", odd_repeat_element)

# ใช้ chain จาก itertools
odd_repeat_element_2 = list(chain.from_iterable([n] if n % 2 == 0 else [n]*2 for n in data_2))
print("\nค่าอินพุตที่กำหนด:", data_2)
print("ลิสต์ที่มีค่าคี่ซ้ำ:", odd_repeat_element_2)

# ใช้ extend จาก numpy
for m in data_3:
    (odd_repeat_element_3.extend(np.repeat(m, 2, axis=0)) if m % 2 == 1 else odd_repeat_element_3.append(m))
print("\nค่าอินพุตที่กำหนด:", data_3)
print("ลิสต์ที่มีค่าคี่ซ้ำ:", odd_repeat_element_3)

การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:

Given input values: [2, 11, 5, 24, 5]
List with odd number repeated values: [2, 11, 11, 5, 5, 24, 5, 5]
Given input values: [-1, -2, -9, -12]
List with odd number repeated values: [-1, -1, -2, -9, -9, -12]
Given input values: [9.0, 7.0, 5.0]
List with odd number repeated values: [9.0, 9.0, 7.0, 7.0, 5.0, 5.0]

สรุป: มีหลายวิธีในการทำซ้ำค่าคี่ในลิสต์ เลือกวิธีที่เหมาะกับความต้องการและประสิทธิภาพของโปรแกรม