คำถามติดแท็ก list

รายการแท็กอาจอ้างถึง: รายการที่เชื่อมโยง (ชุดของโหนดที่สั่งซื้อ, การอ้างอิงแต่ละครั้งที่สืบทอด) หรือรูปแบบของอาร์เรย์แบบไดนามิก ที่จะไม่ใช้สำหรับรายการ HTML ให้ใช้ [html-list] แทน

12
Scala เป็นวิธีที่ใช้สำนวนในการ "ลบ" องค์ประกอบหนึ่งออกจากรายการที่ไม่เปลี่ยนรูปได้อย่างไร
ฉันมีรายการซึ่งอาจมีองค์ประกอบที่จะเปรียบเทียบว่าเท่ากัน ฉันต้องการรายการที่คล้ายกัน แต่มีการลบองค์ประกอบหนึ่งรายการ ดังนั้นจาก (A, B, C, B, D) ฉันต้องการจะสามารถ "ลบ" B เพียงตัวเดียวเพื่อให้ได้เช่น (A, C, B, D) ลำดับขององค์ประกอบในผลลัพธ์ไม่สำคัญ ฉันมีรหัสการทำงานที่เขียนด้วยวิธีที่ได้รับแรงบันดาลใจจาก Lisp ใน Scala มีวิธีสำนวนมากกว่านี้ไหม? บริบทคือเกมไพ่ที่มีการเล่นไพ่มาตรฐานสองสำรับดังนั้นอาจมีไพ่ที่ซ้ำกัน แต่ยังคงเล่นทีละใบ def removeOne(c: Card, left: List[Card], right: List[Card]): List[Card] = { if (Nil == right) { return left } if (c == right.head) { return left …
86 list  scala 

8
วิธีการนับทรัพย์สินเทียบกับจำนวน ()?
การทำงานกับคอลเลกชันฉันมีสองวิธีในการนับวัตถุ Count(คุณสมบัติ) และCount()(วิธีการ) ไม่มีใครรู้ว่าความแตกต่างที่สำคัญคืออะไร? ฉันอาจจะผิด แต่ฉันมักจะใช้Countคุณสมบัติในคำสั่งเงื่อนไขใด ๆ เพราะฉันสมมติว่าCount()เมธอดใช้แบบสอบถามบางประเภทกับคอลเลกชันโดยที่Countต้องได้รับมอบหมายก่อนที่ฉันจะ 'รับ' แต่นั่นเป็นการเดา - ฉันไม่รู้ว่าประสิทธิภาพจะได้รับผลกระทบหรือไม่ถ้าฉันผิด แก้ไข: ด้วยความอยากรู้อยากเห็นจะทำให้Count()เกิดข้อยกเว้นหากคอลเล็กชันเป็นโมฆะ? เพราะฉันค่อนข้างมั่นใจว่าCountคุณสมบัติจะคืนค่าเป็น 0
85 c#  linq  list  collections  count 

7
เหตุใด b + = (4,) ทำงานและ b = b + (4,) ไม่ทำงานเมื่อ b เป็นรายการ
ถ้าเราใช้b = [1,2,3]และถ้าเราลองทำ:b+=(4,) มันกลับb = [1,2,3,4]มา แต่ถ้าเราลองทำb = b + (4,)มันไม่ทำงาน b = [1,2,3] b+=(4,) # Prints out b = [1,2,3,4] b = b + (4,) # Gives an error saying you can't add tuples and lists ฉันคาดว่าb+=(4,)จะล้มเหลวเนื่องจากคุณไม่สามารถเพิ่มรายการและสิ่งอันดับ แต่มันใช้งานได้ ดังนั้นฉันจึงb = b + (4,)คาดหวังว่าจะได้รับผลลัพธ์ที่เหมือนกัน แต่ก็ไม่ได้ผล

9
การเข้าร่วมองค์ประกอบของรายการหากองค์ประกอบเหล่านั้นอยู่ในระหว่างสองช่องว่าง
ฉันมีอินพุตเช่นนี้: ['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++'] ฉันต้องการเข้าร่วมองค์ประกอบระหว่าง''เพื่อให้ได้ผลลัพธ์เช่นนี้ ['assembly', 'python', 'java', 'ruby', 'javascript', 'c++'] ฉันลองใช้joinและแบ่งรายการแบบนี้: a=['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++'] a[2:5] = [''.join(a[ 2: 5])] a=['assembly', '', 'python', '', …

6
รับค่าต่ำสุดที่สองต่อคอลัมน์ในอาร์เรย์ 2D
ฉันจะรับค่าต่ำสุดที่สองจากแต่ละคอลัมน์ได้อย่างไร ฉันมีชุดนี้: A = [[72 76 44 62 81 31] [54 36 82 71 40 45] [63 59 84 36 34 51] [58 53 59 22 77 64] [35 77 60 76 57 44]] ฉันต้องการที่จะมีผลลัพธ์เช่น: A = [54 53 59 36 40 44]

2
numpy.unique ให้เอาต์พุตที่ไม่ถูกต้องสำหรับรายการชุด
ฉันมีรายการชุดที่กำหนดโดย sets1 = [{1},{2},{1}] เมื่อฉันค้นหาองค์ประกอบเฉพาะในรายการนี้โดยใช้ numpy ของuniqueฉันจะได้รับ np.unique(sets1) Out[18]: array([{1}, {2}, {1}], dtype=object) ดังที่เห็นได้ว่าผลลัพธ์ไม่ถูกต้องเหมือนที่{1}ทำซ้ำในผลลัพธ์ เมื่อฉันเปลี่ยนลำดับในอินพุตโดยการทำให้องค์ประกอบที่คล้ายกันติดกันสิ่งนี้จะไม่เกิดขึ้น sets2 = [{1},{1},{2}] np.unique(sets2) Out[21]: array([{1}, {2}], dtype=object) ทำไมสิ่งนี้ถึงเกิดขึ้น? หรือมีบางอย่างผิดปกติในแบบที่ฉันเคยทำ?
14 python  list  numpy  set 

7
การแบ่งองค์ประกอบของรายการอย่างยุติธรรม
เมื่อได้รับรายชื่อการจัดอันดับผู้เล่นฉันจำเป็นต้องแบ่งผู้เล่น (เช่นการจัดอันดับ) ออกเป็นสองกลุ่มอย่างยุติธรรมที่สุด เป้าหมายคือเพื่อลดความแตกต่างระหว่างการจัดอันดับสะสมของทีม ไม่มีข้อ จำกัด เกี่ยวกับวิธีที่ฉันสามารถแยกผู้เล่นออกเป็นทีม (ทีมหนึ่งสามารถมีผู้เล่น 2 คนและทีมอื่นสามารถมีผู้เล่น 10 คน) ตัวอย่างเช่น: [5, 6, 2, 10, 2, 3, 4]ควรกลับมา([6, 5, 3, 2], [10, 4, 2]) ฉันต้องการทราบอัลกอริทึมในการแก้ปัญหานี้ โปรดทราบว่าฉันกำลังเรียนหลักสูตรการเขียนโปรแกรมเบื้องต้นออนไลน์ดังนั้นอัลกอริธึมที่เรียบง่ายจึงน่าชื่นชม ฉันใช้รหัสต่อไปนี้ แต่ด้วยเหตุผลบางอย่างตัวตรวจสอบรหัสออนไลน์บอกว่าไม่ถูกต้อง def partition(ratings): set1 = [] set2 =[] sum_1 = 0 sum_2 = 0 for n in sorted(ratings, reverse=True): if sum_1 …
12 python  algorithm  list 

2
จะเข้าใจวิธีการรวบรวม Java 8 Stream นี้ได้อย่างไร?
ฉันพยายามแปลง int เป็น List และใช้เส้นทางที่ไม่คุ้นเคยในการใช้ Java 8 Stream และคิดสิ่งนี้ขึ้นมา Arrays.stream(arr).boxed().collect(Collectors.toList()); ฉันยังคงมีปัญหาในการเข้าใจบรรทัดนี้ส่วนใหญ่ เหตุใดCollectors.toList()ในกรณีนี้จึงส่งคืนอินเตอร์เฟสที่ArrayList<Integer>ใช้งาน Listทำไมไม่LinkedList<Integer>หรือคลาสทั่วไปอื่น ๆ ที่สอดคล้องกับListอินเตอร์เฟส? ฉันไม่พบสิ่งใดเกี่ยวกับเรื่องนี้ยกเว้นการกล่าวถึง ArrayList สั้น ๆที่นี่ในส่วน API Notes แผงด้านซ้าย หมายถึงอะไร เห็นได้ชัดว่าเป็นประเภทผลตอบแทนทั่วไป ( ในรหัสของฉันที่นี่) และฉันคิดว่าเป็นอาร์กิวเมนต์ประเภททั่วไปของวิธีการ แต่พวกเขาจะระบุได้อย่างไร ผมมองเข้าไปสะสมอินเตอร์เฟซ doc และไม่สามารถที่จะดูดซึมได้ Stream.collect()RArrayList<Integer><R, A>

7
ไม่พบอะแดปเตอร์ข้อมูลที่สามารถจัดการอินพุต: <class 'numpy.ndarray'>, (<class 'list'> ที่มีค่าประเภท {{<<class 'int'>”})
history = model.fit(X, y, batch_size=32, epochs=40, validation_split=0.1) ปัญหาบรรทัดคือสิ่งนี้ แสดงข้อผิดพลาด: ValueError: Failed to find data adapter that can handle input: &lt;class 'numpy.ndarray'&gt;, (&lt;class 'list'&gt; containing values of types {"&lt;class 'int'&gt;"})
12 python  list  numpy  pycharm 

4
Tuple slicing ไม่ส่งคืนวัตถุใหม่ซึ่งต่างจากการแบ่งส่วนรายการ
ใน Python (2 และ 3) เมื่อใดก็ตามที่เราใช้การแบ่งรายการมันจะส่งคืนวัตถุใหม่เช่น: l1 = [1,2,3,4] print(id(l1)) l2 = l1[:] print(id(l2)) เอาท์พุต &gt;&gt;&gt; 140344378384464 &gt;&gt;&gt; 140344378387272 หากสิ่งเดียวกันซ้ำกับ tuple วัตถุเดียวกันจะถูกส่งกลับเช่น: t1 = (1,2,3,4) t2 = t1[:] print(id(t1)) print(id(t2)) เอาท์พุต &gt;&gt;&gt; 140344379214896 &gt;&gt;&gt; 140344379214896 มันจะดีถ้ามีใครบางคนสามารถทำให้เข้าใจว่าทำไมสิ่งนี้ถึงเกิดขึ้นตลอดประสบการณ์ Python ของฉันฉันอยู่ภายใต้การแสดงผลชิ้นส่วนที่ว่างเปล่าส่งคืนวัตถุใหม่ ความเข้าใจของฉันคือการส่งคืนวัตถุเดียวกันกับสิ่งอันดับที่ไม่เปลี่ยนรูปและไม่มีจุดสร้างสำเนาใหม่ แต่ก็ไม่ได้กล่าวถึงในเอกสารทุกที่
12 python  list  tuples  slice  cpython 

4
มีวิธีใดที่เร็วกว่าในการตรวจสอบว่ารายการในรายการเทียบเท่าหรือไม่
นี่ฉันมีจำนวนเต็ม1:7สำหรับสี่พาร์ทิชันที่แตกต่างกันกล่าวคือ {1}, {2,3,4}, {5,6} และ {7} list(1,c(2,3,4),c(5,6),7)และพาร์ทิชันเหล่านั้นจะถูกเขียนในรายการคือ ฉันถือว่าพาร์ติชั่นเป็นชุด, ดังนั้นการเปลี่ยนแปลงองค์ประกอบที่แตกต่างกันภายในพาร์ติชั่นหนึ่งควรถูกจดจำเป็นพาร์ติชั่นเดียวกัน. ตัวอย่างเช่นlist(1,c(2,3,4),c(5,6),7)และlist(7,1,c(2,3,4),c(6,5))เทียบเท่า โปรดทราบว่าไม่มีการทำซ้ำสำหรับองค์ประกอบในรายการเช่นไม่ใช่list(c(1,2),c(2,1),c(1,2))เนื่องจากปัญหานี้กำลังพูดถึงพาร์ติชันพิเศษเหนือทั้งชุด ฉันแสดงรายการการเรียงลำดับที่แตกต่างกันบางรายการลงในรายการ lstด้านล่าง lst &lt;- list(list(1,c(2,3,4),c(5,6),7), list(c(2,3,4),1,7,c(5,6)), list(1,c(2,3,4),7,c(6,5)), list(7,1,c(3,2,4),c(5,6))) และสิ่งที่ฉันต้องการทำคือการตรวจสอบว่าพีชคณิตทั้งหมดมีความเท่าเทียมกัน TRUEถ้าใช่แล้วเราจะได้รับผล สิ่งที่ฉันทำจนถึงตอนนี้คือการจัดเรียงองค์ประกอบภายในแต่ละพาร์ติชันและใช้setdiff()กับinterset()และunion()ตัดสินมัน (ดูรหัสของฉันด้านล่าง) s &lt;- Map(function(v) Map(sort,v),lst) equivalent &lt;- length(setdiff(Reduce(union,s),Reduce(intersect,s),))==0 อย่างไรก็ตามฉันคิดว่าวิธีนี้จะช้าเมื่อใดก็ตามที่ขนาดพาร์ติชันเพิ่มขึ้น มีวิธีเร็วกว่าที่จะทำหรือไม่ ขอบคุณล่วงหน้า! กรณีทดสอบบางอย่าง (ข้อมูลขนาดเล็ก) # should return `TRUE` lst1 &lt;- list(list(1,c(2,3,4),c(5,6)), list(c(2,3,4),1,c(5,6)), list(1,c(2,3,4),c(6,5))) # should return `TRUE` lst2 &lt;- …

5
ตัวเลขผลรวมในรายการ แต่เปลี่ยนเครื่องหมายหลังจากพบศูนย์
ฉันต้องรวมตัวเลขทั้งหมดในรายการ หาก 0 เกิดขึ้นเริ่มลบจนกระทั่งอีก 0 เริ่มต้นเพิ่ม ตัวอย่างเช่น: [1, 2, 0, 3, 0, 4] -&gt; 1 + 2 - 3 + 4 = 4 [0, 2, 1, 0, 1, 0, 2] -&gt; -2 - 1 + 1 - 2 = -4 [1, 2] -&gt; 1 + 2 = 3 [4, 0, …
9 python  list  sum 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.