1. 程式人生 > >Julia: 一行程式碼可以寫出什麼優雅?

Julia: 一行程式碼可以寫出什麼優雅?

1、一個字串陣列的陣列,求其字串陣列元素中的元素之間一一拼接成新字串陣列。
a = [“a1”, “a2”, “a3”];
b = [“b1”, “b2”];
c = [“c1”, “c2”];
list = [a, b, c, …];
要求根據list得到一個結果集合,類似如下格式:
[“a1b1c1”, “a1b1c2”, “a1b2c1”, “a1b2c2”, “a2b1c1”, “a2b1c2”, ……]
即結果集合的每個元素是list內每個陣列取且只取一個元素拼接成的一個字串。
方法1:

using Iterators
map(x->*(x...), product(list
...)) 作者:none after 連結:https://www.zhihu.com/question/36049062/answer/65775426 來源:知乎 著作權歸作者所有,轉載請聯絡作者獲得授權。

方法2:思路如下:
這裡寫圖片描述

這裡寫圖片描述

如何用map,或mapreduce轉成一行比上面更優雅程式碼?

這裡寫圖片描述

方法3:

[x*y*z for x in a, y in b ,z in c][:]

方法4:

這裡寫圖片描述

2、如何一行寫出水仙花數?

度娘告訴我們:
水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 n 位數(n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身(例如:1^3 + 5^3+ 3^3 = 153)。

利用julia內建的digits函式,可以寫出所需要的水仙花數(100到900000):

@time data =[x for x in 100:1:900000 if sum(digits(x).^length(digits(x)))==x]

相關推薦

Julia: 一行程式碼可以什麼優雅

1、一個字串陣列的陣列,求其字串陣列元素中的元素之間一一拼接成新字串陣列。 a = [“a1”, “a2”, “a3”]; b = [“b1”, “b2”]; c = [“c1”, “c2”]; list = [a, b, c, …]; 要求根據lis

程式設計師如何優雅程式碼

一直以來,關於“程式碼規範”的話題都備受關注,業界甚至有很多流傳甚廣的段子不斷調侃之。既然程式碼規範能引起這麼大的共鳴,那麼今天我們談談一個程式設計師的自我修養——如何寫出優雅的程式碼? Martin(Bob大叔)曾在《程式碼整潔之道》一書中說:當你的程式碼在做 Code Review 時,審查

優雅的js程式碼

一.常量相關 1.定義常量 var a=1; // 錯誤:"var"定義的"常量"是可變的,在宣告一個常量時,該常量在整個程式中都應該是不可變的。 正解: const a=1 2.給常量賦值 let lastName = fullName[1]; // 錯誤:如果fullName=[],那麼fullN

如何優雅的java程式碼

一、不要使用魔法數字,儘量定義列舉、常量、巨集: 我常常見到表示各種狀態的數字,0,1,2....,我真的不知道這表示什麼含義,如果 你在不在文件中說明的話,這個東東過幾天連你自己都不知道個一二三了。 二、命名要具有描述力,儘量使用全名而不是自創的縮寫,除非地球人都這麼用這

java程式設計-如何優雅程式碼

1. java判斷null!=a和a!=null的區別? 正常來說沒有區別,我們想判斷a是否為null, 可以寫if(a==null), 但是這有個問題,一不小心手滑了就寫成if(a=null). 在不少語言裡這是可以編譯&執行的,並且得不到你希望的結

用 RxSwift + Moya 優雅的網路請求程式碼

RxSwift Rx 是微軟出品的一個 Funtional Reactive Programming 框架,RxSwift 是它的一個 Swift 版本的實現。 RxSwift 的主要目的是能簡單的處理多個非同步操作的組合,和事件/資料流。 利用 RxSwift,我們可以

Guava - 拯救垃圾程式碼優雅高效,效率提升N倍

![Google Guava](https://cdn.jsdelivr.net/gh/niumoo/cdn-assets/2020/image-20201022013126998.png) > 最近在看一個同學程式碼的時候,發現程式碼中大量使用了 Google 開源的 Guava 核心庫中的內容,讓

React 系列 - 優雅的路由

前言 自前端框架風靡以來,路由一詞在前端的熱度與日俱增,他是幾乎所有前端框架的核心功能點。不同於後端,前端的路由往往需要表達更多的業務功能,例如與選單耦合、與標題耦合、與“麵包屑”耦合等等,因此很少有拆箱即用的完整方案,多多少少得二次加工一下。 1. UmiJS 簡述 優秀的框架可以縮短 90% 以上

一行程式碼一些隨機的文字(在word)!

利用辦公word也可以寫一些東西,生成的文字也是隨機的,首先建一個word文件 開啟後輸入=rand(10,100) 這裡10代表分成十段,100,代表每段100個字 回車後會有如下的效果 沒有什麼價值,不過只是一些有意思的東西,自己可以嘗試一下

python簡單速成,一行程式碼爬蟲

當初讓我學python,我是拒絕的,因為我喜歡java,不能你讓我學我就去學。但是隊友跑路了,甩的攤子我來接,就速成了。 其實java也可以寫爬蟲,然而我並沒有試過,不過這次爬蟲需要佈置在Django的後臺上,但是程式碼思路都是一樣的。 想深入學習建議看《pyt

18行程式碼微信拜年訊息智慧回覆,過年微信輕鬆過

又到了過年,你是否還在為拜年的騷擾簡訊打擾,沒關係有小編在,小編保護你。 不回覆顯得有點不近人情,但是一個個手打回復又會讓人覺得手太累。尤其是大部分好友都是複製群發的訊息,雖說“群發的簡訊我不回”。 思路一是:利用Python實現自動回覆,包括好友訊息和群訊息; 二是:實現智慧的回覆,可以更

iOS cell高度自適應 - 教你優雅的table view

作為一個iOS開發者,自然少不了了table view打交道,table view中最令人頭疼的是各種cell的高度計算了,雖然技術上並不難,但是對於自定義cell來說一旦控制元件比較多,計算起來就會很麻煩,會出現很多和height相關的程式碼,萬一稍有偏差,就

520表白節 用程式碼你對女神的愛

5月20日是情人節,也是所謂的“告白日”,在5月20日的13時14分對喜歡的物件傳送告白簡訊,有“我愛你一生一世”的意思。戀愛中的或已婚人士,也會向對方訴說“5201314”(我愛你一生一世)的情意。 “520告白日”是華人網路上第一個固定節日,是由“我愛你”的諧音而來,目的

幾個簡單的技巧讓你的vue.js程式碼優雅

本文參考自油管上某個國外大神的公開演講視訊,學習了一下覺得很不錯,所以在專案中也使用了這些不錯的技巧。 1. watch 與 computed 的巧妙結合 如上圖,一個簡單的列表頁面。 你可能會這麼做: created(){ this.fetchData() }, watch: { keyword(

9條消除if...else的錦囊妙計,助你優雅程式碼

### 前言 最近在做程式碼重構,發現了很多程式碼的爛味道。其他的不多說,今天主要說說那些又臭又長的if...else要如何重構。 在介紹更更優雅的程式設計之前,讓我們一起回顧一下,不好的if...else程式碼 ### 一、又臭又長的if...else 廢話不多說,先看看下面的程式碼。 ``` publ

#程式設計師面試京東,當場JS程式碼魔方特效,20K月薪輕鬆到手

今天小編我逛論壇,看到了一位程式設計師小夥子,因為是有了兩年工作經驗,然後去京東面試前端崗,一面二面輕鬆就過了,到了技術面這一塊,小夥乾脆就直接用JavaScript寫了一個魔方特效,最終通過了面試,試用期12K,轉正20K的工資水平,這特效看的小編也服氣,主要是腦洞大,所以我也COPY了一

一段Python程式碼實現刪除一個list裡面的重複元素?

  方法1:使用set函式  s=set(list),然後再list(s)   方法2:append      1 def delList(L): 2 L1 = [] 3 for i in L: 4

如何整潔規範的R程式碼?是時候討論一下程式碼規範性了

在雙11免費Get新知識的人,才是最會花錢的人,也將是最會賺錢的人! 別的專場拼消費,唯有天善學院,投資你的未來! 點選圖片,檢視課程詳情 作者:魯偉,熱愛資料,堅信資料技術和程式碼改變世界。R語言和Python的忠實擁躉,為成為一名未來的資料科學家而奮鬥終生。 個人公

程式設計師面試京東,當場JS程式碼魔方特效,20K月薪輕鬆到手

今天小編我逛論壇,看到了一位程式設計師小夥子,因為是有了兩年工作經驗,然後去京東面試前端崗,一面二面輕鬆就過了,到了技術面這一塊,小夥乾脆就直接用JavaScript寫了一個魔方特效,最終通過了面試,試用期12K,轉正20K的工資水平,這特效看的小編也服氣,主要是腦洞大,所以我也COPY了一份原始碼

一行python程式碼九九乘法表,1,2,3…到100的和,交換兩個變數的值

用一行程式碼輸出九九乘法表: 第一種方法: print('\n'.join([' '.join(["%d*%d=%d"%(i,j,i*j) for i in range(1,j+1)])for j in range(1,10)])) 第二種方法: print('\n'.join