{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T08:09:29Z","timestamp":1770278969405,"version":"3.49.0"},"publisher-location":"New York, NY, USA","reference-count":52,"publisher":"ACM","license":[{"start":{"date-parts":[[2024,4,12]],"date-time":"2024-04-12T00:00:00Z","timestamp":1712880000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2024,4,12]]},"DOI":"10.1145\/3597503.3639101","type":"proceedings-article","created":{"date-parts":[[2024,4,12]],"date-time":"2024-04-12T16:43:26Z","timestamp":1712940206000},"page":"1-12","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":7,"title":["Hard to Read and Understand Pythonic Idioms? DeIdiom and Explain Them in Non-Idiomatic Equivalent Code"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0009-0007-8877-4762","authenticated-orcid":false,"given":"Zejun","family":"Zhang","sequence":"first","affiliation":[{"name":"Australian National University, Canberra, Australia"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7663-1421","authenticated-orcid":false,"given":"Zhenchang","family":"Xing","sequence":"additional","affiliation":[{"name":"CSIRO's Data61, Eveleigh, New South Wales, Australia"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3637-4939","authenticated-orcid":false,"given":"Dehai","family":"Zhao","sequence":"additional","affiliation":[{"name":"CSIRO's Data61, Eveleigh, New South Wales, Australia"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9466-1672","authenticated-orcid":false,"given":"Qinghua","family":"Lu","sequence":"additional","affiliation":[{"name":"CSIRO's Data61, Eveleigh, New South Wales, Australia"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2273-1862","authenticated-orcid":false,"given":"Xiwei","family":"Xu","sequence":"additional","affiliation":[{"name":"CSIRO's Data61, Eveleigh, New South Wales, Australia"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5839-3765","authenticated-orcid":false,"given":"Liming","family":"Zhu","sequence":"additional","affiliation":[{"name":"CSIRO's Data61, Eveleigh, New South Wales, Australia"}]}],"member":"320","published-online":{"date-parts":[[2024,4,12]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"2008. Hidden features of Python (The Explanation of Chain Comparison). https:\/\/stackoverflow.com\/questions\/101268\/hidden-features-of-python"},{"key":"e_1_3_2_1_2_1","unstructured":"2010. Expanding tuples into arguments. https:\/\/stackoverflow.com\/questions\/1993727\/expanding-tuples-into-arguments"},{"key":"e_1_3_2_1_3_1","unstructured":"2011. How do chained assignments work. https:\/\/stackoverflow.com\/questions\/7601823\/how-do-chained-assignments-work"},{"key":"e_1_3_2_1_4_1","unstructured":"2012. Why does (1 in [1 0] == True) evaluate to False? https:\/\/stackoverflow.com\/questions\/9284350\/why-does-1-in-1-0-true-evaluate-to-false?"},{"key":"e_1_3_2_1_5_1","unstructured":"2013. Explanation of how nested list comprehension works. https:\/\/stackoverflow.com\/questions\/20639180\/explanation-of-how-nested-list-comprehension-works"},{"key":"e_1_3_2_1_6_1","unstructured":"2017. Set comprehension gives unhashable type set of list in Python. https:\/\/stackoverflow.com\/questions\/42363826\/set-comprehension-gives-unhashable-type-set-of-list-in-python"},{"key":"e_1_3_2_1_7_1","unstructured":"2019. Strange chained comparison. https:\/\/stackoverflow.com\/questions\/58084423\/strange-chained-comparison"},{"key":"e_1_3_2_1_8_1","unstructured":"2022. Pylint. https:\/\/pylint.readthedocs.io\/en\/latest\/"},{"key":"e_1_3_2_1_9_1","unstructured":"2022. RIdiom. https:\/\/plugins.jetbrains.com\/plugin\/20107-ridiom"},{"key":"e_1_3_2_1_10_1","unstructured":"2022. Stack Overflow. https:\/\/stackoverflow.com\/help\/searching"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/CSMR.2011.24"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3276954.3276960"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICOSST51357.2020.9332917"},{"key":"e_1_3_2_1_14_1","volume-title":"Python Tricks: A Buffet of Awesome Python Features. BookBaby.","author":"Bader Dan","year":"2017","unstructured":"Dan Bader. 2017. Python Tricks: A Buffet of Awesome Python Features. BookBaby."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/3571850"},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.282.0294"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/QSIC.2010.58"},{"key":"e_1_3_2_1_18_1","unstructured":"Python developers. 2000. Python Enhancement Proposals. https:\/\/peps.python.org\/pep-0000\/"},{"key":"e_1_3_2_1_19_1","unstructured":"Python developers. 2001. Python Enhancement Proposal 8 (PEP8). https:\/\/peps.python.org\/pep-0008\/"},{"key":"e_1_3_2_1_20_1","unstructured":"Python Developers. 2014. The performance of the list-comprehension. https:\/\/stackoverflow.com\/questions\/22108488\/are-list-comprehensions-and-functional-functions-faster-than-for-loops"},{"key":"e_1_3_2_1_21_1","unstructured":"Python Developers. 2022. The definition of logical lines of Python program. ttps: \/\/docs.python.org\/3\/reference\/lexical_analysis.html#logical-lines"},{"key":"e_1_3_2_1_22_1","volume-title":"IASTED Conf. on software engineering. 346--355","author":"Bois Bart Du","year":"2006","unstructured":"Bart Du Bois, Serge Demeyer, Jan Verelst, Tom Mens, and Marijn Temmerman. 2006. Does god class decomposition affect comprehensibility?. In IASTED Conf. on software engineering. 346--355."},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3486608.3486909"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3106237.3106264"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2897073.2897100"},{"key":"e_1_3_2_1_26_1","unstructured":"Jeff Knupp. 2013. Writing Idiomatic Python 3.3. Jeff Knupp."},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2005.1553647"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3524610.3527879"},{"key":"e_1_3_2_1_29_1","volume-title":"Scalpel: The python static analysis framework. arXiv preprint arXiv:2202.11840","author":"Li Li","year":"2022","unstructured":"Li Li, Jiawei Wang, and Haowei Quan. 2022. Scalpel: The python static analysis framework. arXiv preprint arXiv:2202.11840 (2022)."},{"key":"e_1_3_2_1_30_1","unstructured":"Constantine Lignos. 2019. Anti-Patterns in Python Programming. https:\/\/lignos.org\/py_antipatterns\/"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1960275.1960300"},{"key":"e_1_3_2_1_32_1","volume-title":"Python cookbook","author":"Martelli Alex","unstructured":"Alex Martelli, Anna Ravenscroft, and David Ascher. 2005. Python cookbook. O'Reilly Media, Inc."},{"key":"e_1_3_2_1_33_1","volume-title":"Proceedings of the Seminar Series on Advanced Techniques and Tools for Software Evolution. 1--3.","author":"Merchante Jos\u00e9 Javier","year":"2017","unstructured":"Jos\u00e9 Javier Merchante and Gregorio Robles. 2017. From Python to Pythonic: Searching for Python idioms in GitHub. In Proceedings of the Seminar Series on Advanced Techniques and Tools for Software Evolution. 1--3."},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.23919\/MIPRO.2019.8756695"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME46990.2020.00098"},{"key":"e_1_3_2_1_36_1","volume-title":"The Hitchhiker's guide to Python: best practices for development","author":"Reitz Kenneth","unstructured":"Kenneth Reitz and Tanya Schlusser. 2016. The Hitchhiker's guide to Python: best practices for development. O'Reilly Media, Inc."},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/IWESEP49350.2019.00016"},{"key":"e_1_3_2_1_38_1","volume-title":"R Lyman Ott, and Kenneth G Gerow.","author":"Scheaffer Richard L","year":"2011","unstructured":"Richard L Scheaffer, William Mendenhall III, R Lyman Ott, and Kenneth G Gerow. 2011. Elementary survey sampling. Cengage Learning."},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/CCECE.2003.1226146"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/SANER.2016.35"},{"key":"e_1_3_2_1_41_1","volume-title":"Effective python: 90 specific ways to write better python","author":"Slatkin Brett","unstructured":"Brett Slatkin. 2019. Effective python: 90 specific ways to write better python. Addison-Wesley Professional."},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1984.5010283"},{"key":"e_1_3_2_1_43_1","unstructured":"Donna Spencer. 2009. Card sorting: Designing usable categories. Rosenfeld Media."},{"key":"e_1_3_2_1_44_1","unstructured":"Anthony J Viera Joanne M Garrett et al. 2005. Understanding interobserver agreement: the kappa statistic. Fam med 37 5 (2005) 360--363."},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409735"},{"key":"e_1_3_2_1_46_1","first-page":"196","article-title":"Individual Comparisons by Ranking Methods","volume":"1","year":"1945","unstructured":"Frank. Wilcoxon. 1945. Individual Comparisons by Ranking Methods. Biometrics 1 (1945), 196--202.","journal-title":"Biometrics"},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2017.2734091"},{"key":"e_1_3_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICIME.2010.5477581"},{"key":"e_1_3_2_1_49_1","volume-title":"Gannon","author":"Zelkowitz Marvin V.","year":"1979","unstructured":"Marvin V. Zelkowitz, Alan C. Shaw, and John D. Gannon. 1979. Principles of Software Engineering and Design. Prentice Hall Professional Technical Reference."},{"key":"e_1_3_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/3540250.3549143"},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE48619.2023.00130"},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE-Companion58688.2023.00034"}],"event":{"name":"ICSE '24: IEEE\/ACM 46th International Conference on Software Engineering","location":"Lisbon Portugal","acronym":"ICSE '24","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","IEEE CS","Faculty of Engineering of University of Porto"]},"container-title":["Proceedings of the IEEE\/ACM 46th International Conference on Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3597503.3639101","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3597503.3639101","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T22:49:11Z","timestamp":1750286951000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3597503.3639101"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,4,12]]},"references-count":52,"alternative-id":["10.1145\/3597503.3639101","10.1145\/3597503"],"URL":"https:\/\/doi.org\/10.1145\/3597503.3639101","relation":{},"subject":[],"published":{"date-parts":[[2024,4,12]]},"assertion":[{"value":"2024-04-12","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}